Ich bin auf Android 2.3.7 und ich versuche, einen BroadcastReceiver zu schreiben, der aufgerufen wird, wenn der Benutzer das GPS einschaltet/off (dh., indem sie in den Optionen auf den "Verwendung GPS-Satelliten" KlopfenAndroid: Erkennen, wenn GPS ein-/ausgeschaltet ist (oder wenn keine App mehr verwendet)
Was ich ist bisher getan habe dies:
1) die folgenden broadcastReceiver Erstellt:
public class GPSStatusBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context arg0, Intent arg1) {
Toast.makeText(arg0, "Broadcast received!", Toast.LENGTH_SHORT).show();
}
}
2) Fügte das zum Androidenmanifest innerhalb der Tags hinzu:
<receiver android:name=".GPSStatusBroadcastReceiver">
<intent-filter>
<action android:name="android.location.PROVIDERS_CHANGED" />
</intent-filter>
</receiver>
Jetzt ist das Problem damit, dass es nicht zuverlässig scheint. Wenn ich GPS ein-/ausschalte, läuft die onReceive() -Methode nur manchmal (ich würde sagen 1 Auszeit 3), die anderen Male wird es nicht aufgerufen.
Ich möchte wissen, ob es eine zuverlässige Möglichkeit gibt zu erkennen, wenn das GPS ein-/ausgeschaltet ist.
Wenn es nicht ist, wäre es nett, zumindest benachrichtigt zu werden, wenn keine App das GPS-anyer verwendet (dh wenn das GPS-Symbol aus der Statusleiste verschwindet und anzeigt, dass niemand aktiv aufzufinden ist).
EDIT: Klarstellung: Ich möchte dies nicht tun, während meine App läuft. Ich gerade was meine App zu starten, wenn GPS ein-/ausgeschaltet ist, tun Sie seine Sache und dann zu beenden, möchte ich nicht zu LocationsUpdates abonnieren ...
Sorry, war meine Frage nicht klar genug. Ich möchte den Standort in meiner App nicht ermitteln. Was ich tun will, ist einfach zu erkennen, wenn das System vom Benutzer systemweit ein- und ausgeschaltet wird. (Meine App ist nur dieser Broadcast-Empfänger, der jedes Mal, wenn GPS ein-/ausgeschaltet wird, Daten auf die Festplatte schreibt) –
@Master_T Ja, wenn 'OnStatusChanged' ausgelöst wird, wenn sich der Status geändert hat. Der Status ändert sich offensichtlich, wenn der Benutzer ihn aktiviert/deaktiviert. – poitroae
Aber damit dies funktioniert, ist es nicht notwendig, dass meine App aktiv ist? Oder zumindest im Hintergrund laufen? Was ich will, ist, dass meine App angerufen wird, wann immer das GPS ein-/ausgeschaltet wird, sein Ding macht und dann beendet. Aus diesem Grund habe ich einen Broadcastreceiver verwendet, da er Apps benachrichtigt, selbst wenn sie nicht ausgeführt werden. –