Verwenden anderer Suchmaschinen

Die ExternalSearchProvider-Schnittstelle ermöglicht BlackBerry-Benutzern die Suche nach Daten außerhalb des einheitlichen Suchdienstes. Wenn ein Benutzer ein nicht zufriedenstellendes Suchergebnis erhält, kann er in der universellen Suchfunktion auf der Startseite auf andere externe Suchanbieter klicken. Diese Suchanbieter implementieren die ExternalSearchProvider-Schnittstelle.

Wenn ein Benutzer auf einen Suchanbieter klickt, ruft die universelle Suchfunktion search() für diesen ExternalSearchProvider auf. Der Suchanbieter muss eine Netzwerkverbindung oder prozessübergreifende Kommunikationsverbindung herstellen, eine Suche am Remote-Server aufrufen, die Ergebnisse abrufen und diese dem Benutzer anzeigen. Wenn Ihre Anwendung eine Remote-Suchmaschine verwendet, können Sie die Suchergebnisse zum Inhaltsrepository des einheitlichen Suchdiensts hinzufügen, um die Suchgeschwindigkeit und Effizienz für folgende Suchen zu verbessern.

Zu den vordefinierten externen Suchanbietern zählen YouTube und Google. Drittanbieteranwendungen können auch auf externe Suchanbieter zugreifen. Die UnifiedSearchServices.getSearchProviders()-Methode gibt eine Liste von registrierten ExternalSearchProvider-Objekten zurück, an die eine Anwendung eine Suche senden kann.

Ähnlich wie bei EntityBasedSearchable-Objekten muss ein ExternalSearchProvider-Objekt mithilfe des SearchRegistry-Objekts beim einheitlichen Suchdienst registriert werden. Weitere Informationen finden Sie unter "Registrieren des EntityBasedSearchable-Objekts beim einheitlichen Suchdienst".

Codebeispiel: Implementieren der ExternalSearchProvider-Schnittstelle

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;
    }
}

Waren diese Informationen hilfreich? Senden Sie uns Ihren Kommentar.