Я пытаюсь протестировать разрешения во время выполнения специально для Android sdk> 23. Но моему приложению автоматически предоставляются разрешения без запроса.
Примечание. Я использую SDK версии 24. Вот фрагмент кода, который я использую:
public void onCalendarClick(View view) {
if(ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_CALENDAR) == PackageManager
.PERMISSION_DENIED) {
if(ActivityCompat.shouldShowRequestPermissionRationale(this,Manifest.permission.WRITE_CALENDAR)) {
//Display Explanation to the user
//For granting permissions to the app.
}
else {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_CALENDAR}, CALLBACK_CALENDAR);
}
}
}
@Override
public void onRequestPermissionsResult(int resultCode, String permission[], int grantResults[]) {
if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Toast toast;
switch (resultCode) {
case CALLBACK_CALENDAR : toast = Toast.makeText(this,"Calendar Permission Granted!!",Toast.LENGTH_LONG);
toast.show(); break;
//Other Cases
}
}
}
Когда я нажимаю Calendar Button
, запускается метод onCalendarClick()
, но без запроса разрешения приложение сразу отображает Разрешение на доступ к календарю предоставлено!! toast
. В настройках приложения отображается сообщение Разрешения не предоставлены/запрошены.
Я что-то упускаю или делаю не так? Спасибо за любую помощь.
onRequestPermissionsResult(...)
естьif condition
проверка, предоставлены разрешения или нет. @ДжонатанАсте - person Robin   schedule 05.06.2017targetSdkVersion
? - person CommonsWare   schedule 05.06.2017sdk version 24
@CommonsWare - person Robin   schedule 05.06.2017