Доступ к Android для Android 5 устройств Samsung
Как вы, возможно, знаете, начиная с Android 5, доступ к последним задачам (статистика использования) вашего устройства требует, чтобы пользователь включил эту функцию вручную (Настройки- > Безопасность- > Доступ к использованию).
Мое приложение проверяет, использует ли устройство Android 5, и если да, то он предлагает пользователю возможность открыть экран настроек для обеспечения доступа к использованию:
Intent intent = new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS);
startActivityForResult(intent, 12345);
Проблема возникает, когда я пытаюсь сделать это на устройстве Samsung под управлением Android 5... Я получил эту ошибку, когда строка, показанная выше, выполнена:
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.settings.USAGE_ACCESS_SETTINGS }
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1801)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1499)
at android.app.Activity.startActivityForResult(Activity.java:3913)
Кажется, что действие Settings.ACTION_USAGE_ACCESS_SETTINGS не реализовано, что странно, потому что если вы перейдете к настройкам, чтобы включить приложение для доступа к этой статистике использования, есть...
Любая идея, как исправить эту проблему для этого конкретного случая?
Ответы
Ответ 1
Прошу прощения за последнее время, надеюсь, вы нашли хорошее решение, но если нет или для других людей, у которых есть эта проблема,
эта ошибка, похоже, существует в некоторых моделях Samsung, чтобы избежать краха вашего приложения, возможно, вы можете проверить, можно ли обрабатывать ваше намерение
PackageManager packageManager = getActivity().getPackageManager();
if (intent.resolveActivity(packageManager) != null) {
startActivity(intent);
} else {
Toast.makeText(getBaseContext(), "Please open settings, your model can't be forced to open it", Toast.LENGTH_LONG).show();
}