На устройствах, на которых установлено последнее обновление Android Marshmallow - June2016, при запросе разрешений кнопка ALLOW не работает.
Я тестировал эти два устройства:
Nexus 6p (версия Andoid - 6.0.1, номер сборки - MTC19V)
Nexus 7 (версия Android 6.0.1, номер сборки - MOB30M)
Оба имеют последнее обновление, и когда я запрашиваю разрешения, отображается диалог, но я не могу нажать кнопку ALLOW.
Вот код, который я использую для запроса разрешений:
public void showPermissionsDialog() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
int hasWriteExternalStoragePermission = activity.checkSelfPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE);
int hasWriteGetAccountsPermission = activity.checkSelfPermission(android.Manifest.permission.GET_ACCOUNTS);
if (hasWriteExternalStoragePermission != PackageManager.PERMISSION_GRANTED || hasWriteGetAccountsPermission != PackageManager.PERMISSION_GRANTED) {
activity.requestPermissions(new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE, android.Manifest.permission.GET_ACCOUNTS}, MainActivity.REQUEST_CODE_ASK_PERMISSIONS);
} else {
isAllPermissionsGranted = true;
}
} else {
isAllPermissionsGranted = true;
}
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
if (requestCode == REQUEST_CODE_ASK_PERMISSIONS) {
if (grantResults.length > 0) {
boolean isAllPermissionsGranted = true;
for (int i = 0; i < grantResults.length; i++) {
if (grantResults[i] != PackageManager.PERMISSION_GRANTED) {
isAllPermissionsGranted = false;
}
}
if (isAllPermissionsGranted) {
this.isAllPermissionsGranted = true;
} else {
android.widget.Toast.makeText(this, "Please, grand permissions", android.widget.Toast.LENGTH_LONG).show();
showPermissionsDialog();
}
}
}
}
Любые предложения по устранению этого? Спасибо заранее!
ИЗМЕНИТЬ
Здесь - отчет об ошибках в Google. Мы все еще ждем исправления от Google.
РЕДАКТИРОВАТЬ 1
Эта проблема исправлена!