Guide de développement

Local Navigation

Utilisation des autres moteurs de recherche

L'interface ExternalSearchProvider permet aux utilisateurs BlackBerry de rechercher des données hors du service de recherche unifiée. Si un utilisateur reçoit un résultat de recherche insatisfaisant, il peut cliquer sur les autres fournisseurs de recherche externes à l'aide de la fonction de recherche universelle de l'écran d'accueil. Ces fournisseurs de recherche implémentent l'interface ExternalSearchProvider.

Lorsqu'un utilisateur clique sur un fournisseur de recherche, la fonction de recherche universelle appelle search() pour cette interface ExternalSearchProvider. Le fournisseur de recherche est responsable de créer une connexion réseau ou la communication entre les processus en appelant une recherche sur le serveur distant, en récupérant les résultats, puis en les affichant pour l'utilisateur. Si votre application utilise un moteur de recherche distant, vous pouvez envisager d'insérer les résultats de recherche dans le référentiel de contenu du service de recherche unifiée pour améliorer la vitesse et l'efficacité des recherches ultérieures.

Certains fournisseurs de recherche externes prédéfinis incluent YouTube et Google. Les applications tierces peuvent également accéder aux fournisseurs de recherche externes. La méthode UnifiedSearchServices.getSearchProviders() renvoie une liste d'objets ExternalSearchProvider enregistrés sur laquelle une application peut lancer une recherche.

À l'instar des objets EntityBasedSearchable, une interface ExternalSearchProvider doit être enregistrée auprès du service de recherche unifiée à l'aide de l'objet SearchRegistry. Pour plus d'informations, voir la section « Enregistrer votre objet EntityBasedSearchable avec le service de recherche unifiée ».

Échantillon de code : implémentation de l'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;
    }
}

Ces informations vous ont-elles été utiles ? Envoyez-nous vos commentaires.