Guía de desarrollo

Local Navigation

Utilizar otros motores de búsqueda

La interfaz ExternalSearchProvider permite que los usuarios de BlackBerry busquen datos fuera del Servicio de búsqueda unificada. Si un usuario recibe un resultado de búsqueda poco satisfactorio, puede hacer clic en otros proveedores de búsqueda externos utilizando la característica de búsqueda Universal de la pantalla de inicio. Estos proveedores de búsqueda implementan la interfaz ExternalSearchProvider.

Cuando un usuario hace clic en un proveedor de búsqueda, la característica de búsqueda universal invoca search() para ese ExternalSearchProvider. El proveedor de búsqueda es responsable de crear una conexión de red o una conexión de comunicación entre procesos, invocando una búsqueda en el servidor remoto, recuperando los resultados y mostrándoselos al usuario. Si su aplicación utiliza un motor de búsqueda remoto, puede considerar insertar los resultados de la búsqueda en el repositorio de contenido del Servicio de búsqueda unificada para mejorar la velocidad y la eficiencia de búsquedas posteriores.

Algunos proveedores de búsqueda externos predefinidos son YouTube y Google. Las aplicaciones de terceros también pueden acceder a proveedores de búsqueda externos. El método UnifiedSearchServices.getSearchProviders() devuelve una lista de objetos registrados ExternalSearchProvider donde una aplicación puede enviar una búsqueda.

De forma similar a los objetos EntityBasedSearchable, un ExternalSearchProvider debe registrarse con el Servicio de búsqueda unificada utilizando el objeto SearchRegistry. Para obtener más información, consulte "Registrar su objeto EntityBasedSearchable en el Servicio de búsqueda unificada".

Ejemplo de código: Implementar la interfaz 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 ha resultado útil esta información? Envíenos sus comentarios.