Usar outros mecanismos de busca

A interface ExternalSearchProvider permite que os usuários do BlackBerry pesquisem dados fora do serviço de pesquisa unificada. Se um usuário receber um resultado de pesquisa não satisfatório, clique em outros provedores de pesquisa externos ao usar o recurso de pesquisa universal na tela inicial. Esses provedores de pesquisa implementam a interface ExternalSearchProvider.

Quando um usuário clica em um provedor de pesquisa, o recurso de pesquisa universal invoca search() para esse ExternalSearchProvider. O provedor de pesquisa é responsável pela criação de uma conexão de rede ou conexão de comunicação entre processos, pela invocação de uma pesquisa no servidor remoto, pela recuperação e exibição dos resultados para os usuários. Se o seu aplicativo usar um mecanismo de busca remoto, você poderá considerar a inserção dos resultados de pesquisa no repositório de conteúdo do serviço de pesquisa unificada para melhorar a velocidade e a eficiência das pesquisas subsequentes.

YouTube e Google são alguns dos provedores de pesquisa externos predefinidos. Aplicativos de terceiros também podem acessar provedores de pesquisa externos. O método UnifiedSearchServices.getSearchProviders() retorna uma lista de objetos ExternalSearchProvider registrados em que um aplicativo pode enviar uma pesquisa.

Assim como os objetos EntityBasedSearchable, um ExternalSearchProvider deve ser registrado no serviço de pesquisa unificada usando o objeto SearchRegistry. Para obter mais informações, consulte "Registrar seu objeto EntityBasedSearchable no serviço de pesquisa unificada".

Exemplo de código: Implementar a interface ExternalSearchProvider

import net.rim.device.api.ui.image.Image;
import net.rim.device.api.ui.image.ImageFactory;
import net.rim.device.api.unifiedsearch.searchables.ExternalSearchProvider;
import net.rim.device.api.unifiedsearch.searchables.SearchableContentTypeConstants;
public class MySearchProvider implements ExternalSearchProvider {
    // A unique registration ID for this provider.
    private long _regId;
    // The external search provider icon.
    private Image _icon;
    // Constructor
    public MySearchProvider() {
        // Read the icon from the resource bundle
        Bitmap img = Bitmap.getBitmapResource("myicon.png");
        if(img != null) {
            _icon = ImageFactory.createImage(img);
        } else {
            _icon = null;
        }
    }
    // The provider name to be displayed.
    public String getProviderName() {
        return "Sample External Search Provider";
    }
    // The provider icon to be displayed.
    public Image getProviderIcon() {
        return _icon;
    }
    // The content type this provider offers.
    public long getContentType() {
        return SearchableContentTypeConstants.CONTENT_TYPE_MEDIA_MEMO;
    }
    // The search initiator will pass control to your application using this method.
    public void search(String keywords) {
        // Create network or IPC connections, send search keywords, and display the results.
    }
    // Allows the Unified Search Service and your application to keep track of 
    // this searchable's registration
    public long getRegistrationID()
    {
        return _regId;
    }
    public setRegistrationID(long id)
    {
        _regId = id;
    }
}

Estas informações foram úteis? Gostaríamos de receber seus comentários.