Nun habe ich eine Menge Digging gemacht und addGpsStatusListener(gpsStatusListener)
ist in API 24 veraltet. Gut für mich hat das nicht mal funktioniert. Hier ist eine andere Alternative dazu.
Wenn Sie in Ihrer App wollen, um den GPS-Status zu hören, ändern Sie (ich meine On/Off von Benutzer). Broadcast ist der beste Ansatz.
Umsetzung:
/**
* Following broadcast receiver is to listen the Location button toggle state in Android.
*/
private BroadcastReceiver mGpsSwitchStateReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().matches("android.location.PROVIDERS_CHANGED")) {
// Make an action or refresh an already managed state.
}
}
};
das nicht effizient als auch in Fragmente/Activity Lifecycle zu registrieren und deregistrieren Vergessen.
registerReceiver(mGpsSwitchStateReceiver, new IntentFilter(LocationManager.PROVIDERS_CHANGED_ACTION));
Zum Beispiel, wenn Sie in einem Fragment verwenden, registrieren in onDestroy
in onResume
und abzumelden, wenn Sie sind Benutzer auf die Einstellungen unter den Standort wechseln zu ermöglichen. Das Aufheben der Registrierung in onStop
funktioniert nicht, da Ihre Aktivität zu geht und das Fragment gestoppt wird.
Nun, es gibt vielleicht viele Antworten für diese Lösung, aber diese ist einfach zu verwalten und zu verwenden .
Tun Sie dies nur, wenn Sie möchten, dass Ihre Benutzer Sie hassen. –
@BurhanKhalid nicht unbedingt. Gerade jetzt habe ich das als Geschäftsanforderung. – Chisko