Я хотел бы определить, когда пользователь меняет настройки GPS вкл или выкл для телефона Android. Значение, когда пользователь переключает GPS-сателлит вкл/выкл или обнаружение через точки доступа и т.д.
Обнаружение GPS-переключателя в телефонах Android
Ответ 1
Как я выяснил, лучший способ сделать это - прикрепить к
<action android:name="android.location.PROVIDERS_CHANGED" />
Цель.
Например:
<receiver android:name=".gps.GpsLocationReceiver">
<intent-filter>
<action android:name="android.location.PROVIDERS_CHANGED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
И затем в коде:
public class GpsLocationReceiver extends BroadcastReceiver implements LocationListener
...
@Override
public void onReceive(Context context, Intent intent)
{
if (intent.getAction().matches("android.location.PROVIDERS_CHANGED"))
{
// react on GPS provider change action
}
}
Ответ 2
Попробуйте это,
try {
locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
Log.i("About GPS", "GPS is Enabled in your devide");
} else {
//showAlert
}
Ответ 3
Impement android.location.LocationListener, там у вас есть две функции
public void onProviderEnabled(String provider);
public void onProviderDisabled(String provider);
Используя это, вы можете узнать, когда запрашиваемый провайдер включен или выключен.