2012-04-06 2 views
0

Ich bin relativ neu in der Android-Entwicklung, also habe ich mich gefragt, wie ich ein neues Programm entwerfen/strukturieren soll, das ich entwickeln möchte. Ich bin mir nicht sicher, ob es als Dienst oder als Rundfunkempfänger oder sogar als Aktivität gestartet werden sollte (alles, was ich jemals getan habe).Android Programm Design

Was ich tun möchte, ist erhalten, wenn bestimmte Ereignisse auf dem Telefon passieren, wie wenn die folgenden eingeschaltet sind blau-tooth, WiFi, GPS und Kamera. Und wenn das passiert, senden Sie eine Nachricht an einen Netzwerk-Manager (mit SNMP).

Jetzt möchte ich, dass es im Hintergrund läuft und auf diese Ereignisse wartet. Erstelle ich einen Dienst und erstelle Empfänger, um Empfänger zu erstellen, und wenn die Aktion stattfindet, erstelle einen Dienst/Tritt, um darauf zu reagieren/die SNMP-Nachricht zu generieren?

Wenn das beantwortet wird, hatte ich auch Probleme damit, wie die Manifest-Datei für die Ausführung von Empfängern und Diensten innerhalb desselben Codes strukturiert wäre. Aber ich denke, das hängt davon ab, wie man es zum Laufen bringt?

Antwort

1

Sie benötigen lediglich einen Broadcast-Empfänger, der über die aufgelisteten Ereignisse benachrichtigt wird und einen Server startet, der einige Nachrichten asynchron sendet.

+0

Ich versuchte dieses einfache Beispiel eines Rundfunkempfängers und es scheint nur zu laufen und dann zu beenden. http://code.google.com/p/carbot/source/browse/trunk/src/net/cardroid/BluetoothBroadcastReceiver.java?r=8 Also ein wenig verwirrt vielleicht nicht das manifest.XML Recht als nicht sicher was der Aktionswert für den Empfänger sein sollte. – captfrank

+0

Ich habe einen einfachen broadcastReceiver funktioniert, aber ein Problem beim Senden einer SNMP-Trap. Ich glaube, dass es ein Berechtigungsproblem ist, da ich keinen Sender davon abhalten möchte, bestimmte Ereignisse zu senden, also keine Berechtigungen listete, sondern einen SNMP-Trap aussenden muss, um dies zu tun. Dafür muss ich einen Dienst spawnen Arbeit? – captfrank