Guida allo sviluppo

Local Navigation

Utilizzo di altri motori di ricerca

L'interfaccia ExternalSearchProvider consente agli utenti BlackBerry di cercare i dati al di fuori del servizio Unified Search. Se un utente riceve un risultato della ricerca non soddisfacente, può fare clic su altri provider di ricerca esterni quando utilizza la funzionalità di ricerca universale nella schermata iniziale. Questi provider di ricerca consentono di implementare l'interfaccia ExternalSearchProvider.

Quando un utente fa clic su un provider di ricerca, la funzionalità di ricerca universale richiama search() per tale oggetto ExternalSearchProvider. Il provider di ricerca è responsabile della creazione di una connessione di rete o di una comunicazione tra i processi, del richiamo di una ricerca sul server remoto, del recupero dei risultati e della loro visualizzazione per l'utente. Se l'applicazione utilizza un motore di ricerca remoto, è consigliabile inserire i risultati della ricerca nell'archivio del contenuto del servizio Unified Search per migliorare la velocità e l'efficienza per le ricerche successive.

Alcuni provider di ricerca esterni predefiniti includono YouTube e Google. Le applicazioni di terzi possono accedere anche ai provider di ricerca esterni. Il metodo UnifiedSearchServices.getSearchProviders() restituisce un elenco di oggetti ExternalSearchProvider registrati, in cui un'applicazione può inviare una ricerca.

Analogamente agli oggetti EntityBasedSearchable, è necessario registrare un oggetto ExternalSearchProvider con il servizio Unified Search utilizzando l'oggetto SearchRegistry. Per ulteriori informazioni, consultare la sezione "Registrazione dell'oggetto EntityBasedSearchable con il servizio Unified Search".

Esempio di codice: implementazione dell'interfaccia 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;
    }
}

Le informazioni sono state utili? Inviateci i vostri commenti.