Я создаю простое приложение, в котором я показываю несколько маркеров на карте. Я использую следующий код для отображения AlertDialog
, если местоположение off
:
LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
AlertDialog.Builder builder = new AlertDialog.Builder(context);
//Set title, message and other stuff.
try {
if (Settings.Secure.getInt(context.getContentResolver(), Settings.Secure.LOCATION_MODE) == Settings.Secure.LOCATION_MODE_OFF) {
alertDialog.show(); //Works perfect!
}
} catch (Settings.SettingNotFoundException e) {e.printStackTrace();}
//Create a listener to check for Location Settings Changes
LocationListener locationListener = new LocationListener() {
public void onProviderEnabled(String provider) {alertDialog.dismiss();} //Dismiss the AlertDialog
// The other overloaded methods: onProviderDisabled, onLocationChanged and onStatusChanged
};
Когда я запускаю приложение в первый раз с местоположением, указанным off
, появляется AlertDialog
. Если я поверну on
Место, как на картинке ниже:
![enter image description here](https://i.stack.imgur.com/3slni.jpg)
Метод onProviderEnabled()
не запускается. Если я закрою перезапустить приложение, все работает нормально. И вот как я запрашиваю обновления местоположения.
if (isGooglePlayServicesOk()) {
String[] permissions = {COARSE_LOCATION, FINE_LOCATION};
if (COARSE LOCATION PERMISSION GRANTED CONDITION) {
if (FINE LOCATION PERMISSION GRANTED CONDITION) {
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
}
}
}
Пожалуйста, помогите мне удалить AlertDialog
с первого запуска приложения. Спасибо !!