У меня есть приложение, которое зависит от разрешенных служб определения местоположения.Заставить приложение ждать, пока службы определения местоположения не будут включены?
Таким образом, когда пользователь запускает приложение, появляется диалоговое окно и проверяется, включена ли служба определения местоположения. Тем не менее, я хочу, чтобы приложение приостанавливалось до тех пор, пока пользователь не перейдет на страницу настроек (к которому он перенаправлен, нажав кнопку «ОК» в диалоговом окне) и включив службы определения местоположения. Как только он это сделает, он должен вернуться к MainActivity
, и код должен продолжаться там, где он остановился.
Если я не позволяю приложению приостанавливаться, код просто продолжается и пытается выполнить код, требующий, чтобы службы определения местоположения были включены, и приложение вылетает.
В настоящее время у меня есть это, так как я могу изменить его так, чтобы он ждал?
if(!location_enabled) {
// notify user
AlertDialog.Builder dialog = new AlertDialog.Builder(this);
dialog.setMessage("Location services are currently not " +
"enabled. You must enable this in order to continue. Would you like to do this now?");
dialog.setPositiveButton("Take me to location services", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface paramDialogInterface, int paramInt) {
startActivity(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS));
// WAIT UNTIL LOCATION SERVICES ENABLED
}
});
dialog.setNegativeButton(context.getString(R.string.Cancel), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface paramDialogInterface, int paramInt) {
//EXIT APPLICATION
}
});
dialog.show();
}
if(location_enabled) {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
//DO FANCY STUFF WITH LOCATION
}
}
Блестящий. Можете ли вы также сообщить мне, что означает значение «imageChooserIntent»? – Chris
Извините, отредактировал ответ. Это должно быть 'locationSettingIntent'. –