Jak widać z mojego manifestu poniżej, dodałem pozwolenie, Czego mi brakuje?Android 6.0 Odmowa zezwolenia: wymaga pozwolenia android.permission.WRITE_SETTINGS
<uses-permission-sdk-m android:name="android.permission.WRITE_SETTINGS" />
Jak widać z mojego manifestu poniżej, dodałem pozwolenie, Czego mi brakuje?Android 6.0 Odmowa zezwolenia: wymaga pozwolenia android.permission.WRITE_SETTINGS
<uses-permission-sdk-m android:name="android.permission.WRITE_SETTINGS" />
Okazuje się, trzeba użyć innego mechanizmu przyznawana WRITE_SETTINGS
w Androidzie 6. requestPermissions
nie działa, ale CommonsGuy dostarczył obejście tutaj: https://stackoverflow.com/a/32083622/238753
Jest to szczególny przypadek: poziom uprawnień: podpis,
Jeśli aplikacja jest skierowana na poziom API 23 lub wyższy, użytkownik aplikacji musi jawnie przyznać temu uprawnieniu aplikację za pomocą ekranu zarządzania uprawnieniami.
Aplikacja żąda zgody użytkownika, wysyłając intencję z akcją ACTION_MANAGE_WRITE_SETTINGS.
Aplikacja może sprawdzić, czy ma to uprawnienie, dzwoniąc do ustawień.System.canWrite().
API 23 lub wyższym użytkownik musi ręcznie zezwolić na to zgody, można sprawdzić przez Calling „Settings.System.canWrite” poniżej jest realizacja tego: -
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (Settings.System.canWrite(context)) {
// Do stuff here
}
else {
Intent intent = new Intent(android.provider.Settings.ACTION_MANAGE_WRITE_SETTINGS);
intent.setData(Uri.parse("package:" + getActivity().getPackageName()));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (!Settings.System.canWrite(getApplicationContext())) {
Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS, Uri.parse("package:" + getPackageName()));
startActivityForResult(intent, 200);
}
}
to działa jak marzenie.
https://developer.android.com/preview/features/runtime-permissions.html – Budius
Już to przeczytałem. Metoda requestPermissions() nie działa, dlaczego? – Dobin
może powinieneś to sprawdzić: http://stackoverflow.com/help/on-topic i że http://stackoverflow.com/help/dont-ask – Budius