Expor os dados do seu aplicativo

O serviço de pesquisa unificada mantém um índice de conteúdo em um aparelho BlackBerry. Seu aplicativo usa as classes SearchRegistry, AppContentManager e AppContentListener para se comunicar com o serviço de pesquisa unificada. Para tornar os dados do seu aplicativo localizáveis, você deve executar cinco tarefas.

Tarefa

Descrição

Defina uma classe EntityBasedSearchable para seus objetos SearchableEntity.

Um objeto EntityBasedSearchable representa seus dados pesquisáveis para o serviço de pesquisa unificada. Quando você registra o EntityBasedSearchable, o serviço solicita que seu aplicativo prepare os dados para envio chamando EntityBasedSearchable.load(). Quando os dados do seu aplicativo estiverem prontos para o envio, você deverá invocar completed() no parâmetro NotificationListener passado para load().

Encapsule seus dados em um objeto SearchableEntity.

Um objeto SearchableEntity é a menor unidade de dados que um aplicativo pode enviar ao serviço de pesquisa unificada. O objeto EntityBasedSearchable envia seus objetos SearchableEntity ao serviço quando solicitado. Você deve encapsular os dados do aplicativo em um objeto SearchableEntity. O serviço indexa os metadados que são exposto por esses objetos para consideração durante as operações de pesquisa. Além disso, os objetos SearchableEntity são retornados nos resultados da pesquisa do serviço.

Pode ser que o serviço de pesquisa unificada precise interromper sua operação de carga se o aparelho BlackBerry estiver ocupado ou com pouca bateria. Se a interrupção for necessária, o serviço invocará EntityBasedSearchable.pause(). Quando o serviço detecta que sua operação pode continuar, ele invoca EntityBasedSearchable.resume(). Responda a esses eventos de maneira oportuna para que o aplicativo não cause a interrupção de outros aplicativos no aparelho.

Depois que você notifica ao serviço de pesquisa unificada que seus dados estão prontos, ele chama EntityBasedSearchable.getSearchableEntities() para indexar os dados. O serviço poderá invocar load() e getSearchableEntities() novamente se detectar que o índice de conteúdo e seus dados não estão sincronizados.

Registre o objeto EntityBasedSearchable no serviço de pesquisa unificada.

Depois que você prepara os dados para pesquisa e define como serão indexados, você deve registrar o EntityBasedSearchable no serviço de pesquisa unificada. Passe EntityBasedSearchable ao invocar SearchRegistry.register(). O serviço então recuperará e indexará os dados para inclusão nos resultados da pesquisa.

Notifique o serviço de pesquisa unificada sobre as alterações nos seus dados.

Para notificar o índice de conteúdo sobre as alterações nos dados do aplicativo, use os métodos insert(), delete() e update() no objeto AppContentManager.

Escuta de respostas do serviço de pesquisa unificada.

Ao notificar o serviço de pesquisa unificada sobre alterações nos dados do seu aplicativo, você deve fornecer um objeto AppContentListener em que o serviço pode notificar seu aplicativo sobre o resultado da sua solicitação.

O diagrama a seguir ilustra a relação entre os componentes que são usados nas tarefas anteriores.

Este diagrama mostra a relação entre os componentes que são usados para adicionar seu conteúdo ao Serviço Unificado de Pesquisa.

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