Entwicklungshandbuch
Local Navigation
- Integrieren in Anwendungen der BlackBerry Device Software
- Einheitliche Suche
- Auffindbarmachen von Daten
- Definieren einer EntityBasedSearchable-Klasse für Ihre SearchableEntity-Objekte
- Einkapseln von Daten in der SearchableEntity-Klasse
- Specifying what users can do with your data in search results
- Registrieren des EntityBasedSearchable-Objekts beim einheitlichen Suchdienst
- Benachrichtigen des einheitlichen Suchdiensts über Änderungen an Ihren Daten
- Abfragen von Antworten vom einheitlichen Suchdienst
- Entfernen von Daten aus dem Inhaltsrepository
- Verwenden anderer Suchmaschinen
- Sicherstellen, dass ein Gerät eine einzelne Instanz Ihrer Anwendung ausführt
- Einfügen von Daten beim Gerätestart
- Suchen
- Unterstützung für Geräteinteraktionen
- Nachrichtenliste
- Benutzerdefinierte Nachrichten
- Anlagen
- Kalender
- Kontaktliste
- Aufgabenliste
- Telefon
- BlackBerry Browser
- Menübefehle
- Weitere Informationen finden Sie unter
- Glossar
- Rückmeldung
- Verlauf der Dokumentrevision
- Rechtliche Hinweise
Produktunterlagen
>
Entwicklerdokumentation
>
Java Entwicklungshandbuch und API-Referenzhandbuch
>
Entwicklungshandbuch
Integration Guide - BlackBerry Java SDK - 7.0
Sicherstellen, dass ein Gerät eine einzelne Instanz Ihrer Anwendung ausführt
Um die Effizienz Ihrer Anwendung zu verbessern, sollten Sie sicherstellen, dass das BlackBerry-Gerät nur eine Instanz von search() ausführt, wenn ExternalSearchProvider in Ihrer Implementierung aufgerufen wird.
- Importieren Sie in Ihrer Implementierung von ExternalSearchProvider Pakete, um einfacher zu erkennen, welche Anwendungen auf dem Gerät ausgeführt werden.
import net.rim.device.api.system.ApplicationDescriptor; import net.rim.device.api.system.ApplicationManager; import net.rim.device.api.system.ApplicationManagerException; import net.rim.device.api.system.CodeModuleManager;
- Rufen Sie unter search() ein Handle für Ihre Anwendung ab.
public void search(String keywords) { int modHandle = CodeModuleManager.getModuleHandle("MyApplication"); - Rufen Sie ein Array von Objekten ab, das die Anwendungen darstellt, die auf dem Gerät ausgeführt werden.
ApplicationDescriptor[] allApps = ApplicationManager.getApplicationManager().getVisibleApplications();
- Untersuchen Sie jedes Element des Arrays, um zu bestimmen, ob Ihre Anwendung auf dem Gerät ausgeführt wird.
for(int i = allApps.length -1; i >= 0; --i) { if(allApps[i].getModuleHandle() == modHandle) { - Wenn Ihre Anwendung ausgeführt wird, senden Sie ihr die Stichwörter für die Suche. Rufen Sie postGlobalEvent() auf, um Ihrer Anwendung eine Nachricht zu senden, damit diese einen Bildschirm mit den Ergebnissen für die neuen Stichwörter anzeigt. Sie müssen ein globales Ereignis erkennen, das in der GUID im Konstruktor Ihrer Anwendung veröffentlicht wurde.
int procID = ApplicationManager.getApplicationManager().getProcessId(allApps[i]); ApplicationManager.getApplicationManager().postGlobalEvent(procID, your application's GUID, 0, 0, keywords, null); } } - Wenn Ihre Anwendung nicht auf dem Gerät ausgeführt wird, rufen Sie ein ApplicationDescriptor-Objekt ab, das Ihre Anwendung darstellt.
ApplicationDescriptor[] myAppDes = CodeModuleManager.getApplicationDescriptors(modHandle);
- Starten Sie Ihre Anwendung. Übergeben Sie die Suchwörter als Argument. Im Konstruktor Ihrer Anwendung müssen Sie erkennen, ob es ein Argument gibt, das die Suchwörter enthält.
try { ApplicationManager.getApplicationManager().runApplication(new ApplicationDescriptor(myAppDes[0], new String[]{keywords})); } catch(ApplicationManagerException e) { // Process the error condition } } } - Importieren Sie das net.rim.device.api.system.GlobalEventListener-Paket in Ihrer Anwendungsklasse, um globale Ereignisse abzufragen.
import net.rim.device.api.system.GlobalEventListener;
- Importieren Sie die UiApplication-Klasse.
import net.rim.device.api.ui.UiApplication;
- Registrieren Sie Ihre Anwendung, um globale Ereignisse abzufragen, wie z. B. das, das Sie in Schritt 5 erstellt haben, und zeigen Sie Ihren ersten Bildschirm an.
public class MySearchProviderApp extends UiApplication implements GlobalEventListener { public MySearchProviderApp(String searchKeywords) { addGlobalEventListener(this); pushScreen(new MySearchScreen(searchKeywords)); } - Implementieren Sie eventOccured(), um auf globale Ereignisse zu reagieren.
public void eventOccurred(long guid, int data0, int data1, Object object0, Object object1) { - Wenn Ihre Anwendung auf dem Gerät ausgeführt wird, schließen Sie den vorhandenen Bildschirm, und zeigen Sie einen anderen Bildschirm an.
if(guid == G53DDE84S97JHVEK390) { if(object0 instanceof String) { popScreen(); pushScreeen(new MySearchScreen((String) object0)); requestForeground(); } } } - Prüfen Sie die Argumente für die main-Methode auf Suchstichwörter. Starten Sie Ihre Anwendung mit den vorgegebenen Suchwörtern oder mit einer leeren Zeichenfolge, wenn keine Suchwörter vorgegeben sind.
public static void main(String[] args) { String searchKeywords = ""; if(args != null && args.length > 0) { searchKeywords = args[0]; } MySearchProviderApp app = new MySearchProviderApp(searchKeywords); app.enterEventDispatcher(); } }
Nächstes Thema: Einfügen von Daten beim Gerätestart
Vorheriges Thema: Verwenden anderer Suchmaschinen
Waren diese Informationen hilfreich? Senden Sie uns Ihren Kommentar.