Guida allo sviluppo
Local Navigation
- Integrazione con le applicazioni BlackBerry Device Software
- Unified Search
- Come rendere individuabili i dati
- Definizione di una classe EntityBasedSearchable per gli oggetti SearchableEntity
- Incapsulamento dei dati nella classe SearchableEntity
- Specifying what users can do with your data in search results
- Registrazione dell'oggetto EntityBasedSearchable con il servizio Unified Search
- Notifica al servizio Unified Search delle modifiche apportate ai dati
- Rilevamento delle risposte del servizio Unified Search
- Rimozione dei dati dall'archivio del contenuto
- Utilizzo di altri motori di ricerca
- Verifica relativa all'esecuzione di una singola istanza dell'applicazione da parte di un dispositivo
- Inserimento di dati all'avvio del dispositivo
- Ricerca
- Supporto di interazione del dispositivo
- Elenco dei messaggi
- Messaggi personalizzati
- Allegati
- Calendario
- Elenco contatti
- Elenco attività
- Telefono
- BlackBerry Browser
- Voci di menu
- Ulteriori informazioni
- Glossario
- Commenti e suggerimenti
- Cronologia delle revisioni del documento
- Note legali
Documentazione sui prodotti
>
Documentazione per gli sviluppatori
>
Guide per lo sviluppo Java e riferimento API
>
Guida allo sviluppo
Integration Guide - BlackBerry Java SDK - 7.0
Definizione di una classe EntityBasedSearchable per gli oggetti SearchableEntity
L'implementazione dell'interfaccia EntityBasedSearchable consente di gestire la relazione tra il servizio Unified Search e le entità ricercabili create dall'utente. Ogni oggetto EntityBasedSearchable gestisce un gruppo di oggetti SearchableEntity dotati delle stesse proprietà ricercabili.
- Importare le classi e le interfacce richieste.
import net.rim.device.api.unifiedsearch.SearchField; import net.rim.device.api.unifiedsearch.searchables.EntityBasedSearchable; import net.rim.device.api.unifiedsearch.searchables.SearchableContentTypeConstants; import net.rim.device.api.unifiedsearch.searchables.Searchable;
- Creare le variabili di istanza per memorizzare le informazioni pertinenti a EntityBasedSearchable.
private MySearchableEntity[] _myEntities; // You will need this in steps 8 and 11 private long _registrationID; private SearchField[] _searchFields; private Image _icon; private final Object _monitor = new Object(); private boolean _wait = false;
- Nel costruttore, creare una matrice di oggetti SearchField. Ogni SearchField memorizza il nome di una proprietà ricercabile dei dati. Nel seguente esempio di codice, gli oggetti dei dati delle applicazioni, gestiti da questa classe, sono dotati di tre proprietà ricercabili. Ad esempio, se i dati delle applicazioni hanno modellato dei libri, questi campi potrebbero includere il titolo, il distributore e il numero di pagine.
class MyEBS implements EntityBasedSearchable { _searchFields = new SearchField[3]; - Assegnare un nome significativo a ogni SearchField.
_searchFields[0] = new SearchField("Title"); _searchFields[1] = new SearchField("Publisher"); _searchFields[2] = new SearchField("Number of pages"); } - Creare un'icona da visualizzare nei risultati della ricerca, che includono le entità ricercabili gestite da questo oggetto EntityBasedSearchable. Per ulteriori informazioni sulla creazione di icone, consultare la sezione "Personalizzazione della modalità di visualizzazione dei dati nei risultati della ricerca".
- Implementare getType(). Restituire il tipo di contenuto che corrisponde meglio ai dati delle applicazioni. Per un elenco dei tipi di contenuto validi, vedere l'interfaccia net.rim.device.api.unifiedsearch.searchables.SearchableContentTypeConstants nel riferimento API.
public long getType() { return SearchableContentTypeConstants.CONTENT_TYPE_MEMO; - Scegliere gli iniziatori della ricerca che devono ricevere i risultati della ricerca dall'applicazione. Per ulteriori informazioni sull'esposizione dei dati per le ricerche, vedere la classe net.rim.device.api.unifiedsearch.entity.ExposureLevel nel riferimento API.
public int getPrivacyLevel() { return ExposureLevel.LEVEL_PUBLIC; } - Implementare load(). Se il dispositivo BlackBerry è occupato o il livello di carica della batteria è basso, potrebbe essere necessario interrompere momentaneamente il funzionamento di questo metodo e riprenderlo quando richiesto.
- Per EntityBasedSearchable, determinare il numero di oggetti dati attualmente esistenti nell'applicazione.
public void load (NotificationListener observer, int loadType) { Vector myObjects = MyObjectManager.getDataObjects(); if (myObjects != null) { int size = myObjects.size() if(size < 1) { _myEntities = new MySearchableEntity[0]; } else { _myEntities = new MySearchableEntity[size]; } } else { // handle the condition where you have no data objects } - Utilizzare un loop while per compilare una matrice di entità ricercabili.
Enumeration objects = myObjects.elements(); int count = 0; while (objects.hasMoreElements()) { - Verificare se il servizio Unified Search ha inviato un comando pause. In caso affermativo, interrompere momentaneamente l'operazione di compilazione della matrice di entità ricercabili e inviare una notifica al servizio.
if (_wait){ try { synchronized(_monitor) { observer.partiallyCompleted(this, null, NotificationListener.TYPE_SEARCHABLE); _monitor.wait(); } } catch (InterruptedException e){ observer.error(e); return; } } - Quando l'applicazione riprende il controllo del thread, continuare a compilare la matrice di entità ricercabili.
MyObject dataObject = (MyObject) objects.nextElement(); _myEntities[count++] = new MySearchableEntity(dataObject, this); } - Notificare al servizio Unified Search l'avvenuto caricamento dei dati.
observer.completed(this, NotificationListener.TYPE_SEARCHABLE); }
- Per EntityBasedSearchable, determinare il numero di oggetti dati attualmente esistenti nell'applicazione.
- In pause(), impostare la variabile _wait su true. Il servizio Unified Search chiama questo metodo quando desidera che l'applicazione interrompa il caricamento dei dati.
public void pause() { _wait = true; } - In resume(), impostare la variabile _wait su false. Inoltre, notificare al metodo load() che può riprendere l'esecuzione. Il servizio Unified Search richiama resume() quando desidera che l'applicazione riprenda il caricamento dei dati.
public void resume() { _wait = false; synchronized(_monitor) { _monitor.notifyAll(); } } - In getSearchableEntities(), restituire la matrice _myEntities creata nel passaggio 8.
public SearchableEntity[] getSearchableEntities() { return _myEntities; }
- Personalizzazione della modalità di visualizzazione dei dati nei risultati della ricerca
- Come specificare un'icona nella classe EntityBasedSearchable o SearchableEntity
Argomento successivo: Personalizzazione della modalità di visualizzazione dei dati nei risultati della ricerca
Argomento precedente: Passaggio di query ad altri motori di ricerca
Le informazioni sono state utili? Inviateci i vostri commenti.