Beh, ho fatto un sacco di scavi e lo standard addGpsStatusListener(gpsStatusListener)
è deprecato in API 24. Beh, per me questo non ha funzionato. Ecco un'altra alternativa a questo.
Se vuoi nella tua app, per ascoltare il cambiamento dello stato del GPS (intendo On/Off per utente). Broadcast è l'approccio migliore.
Implementazione:
/**
* 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.
}
}
};
Non dimenticare di registrare e annullare la registrazione di questo in modo efficiente in Frammento/attività del ciclo di vita pure.
registerReceiver(mGpsSwitchStateReceiver, new IntentFilter(LocationManager.PROVIDERS_CHANGED_ACTION));
Per esempio, se si sta utilizzando in un frammento, registrarsi onResume
e annullare la registrazione in onDestroy
se, sta assumendo utente alle impostazioni per abilitare la posizione dell'interruttore. L'annullamento della registrazione nel onStop
non funzionerà poiché l'attività va a e Frammento viene interrotto.
Bene ci possono essere molte risposte per questa soluzione, ma questa è facile da gestire e utilizzare .
Fallo solo se desideri che i tuoi utenti ti odino. –
@BurhanKhalid non necessariamente. In questo momento ho questo come requisito aziendale. – Chisko