Разрешения Android M: onRequestPermissionsResult() не вызывается ⇐ Android

Форум для тех, кто программирует под Android
Anonymous
Разрешения Android M: onRequestPermissionsResult() не вызывается

Сообщение Anonymous »

Я обновляю наше приложение, чтобы использовать новую систему разрешений среды выполнения M.
Все работает, за исключением onRequestPermissionsResult(). Мне нужно проверить разрешение на нажатие кнопки и, если оно прошло успешно, отправить текстовое сообщение. Когда я даю разрешение на это, диалоговое окно закрывается, но оно не запускает команду «Отправить текст», пока я не нажму кнопку снова.

Я отладил и установил точки останова в методе onRequestPermissionsResult(), но никогда не переходит в него.

Этот метод вызывается первым:

Код: Выделить всё

    private void askForPermission() {
String[] permissions = new String[]{Manifest.permission.SEND_SMS};
ActivityCompat.requestPermissions(getActivity(), permissions, PERMISSIONS_CODE);
}
И тогда мой обратный вызов выглядит так:

Код: Выделить всё

    @Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);

if (requestCode == PERMISSIONS_CODE) {
for (int i = 0; i < permissions.length; i++) {
String permission = permissions[i];
int grantResult = grantResults[i];

if (permission.equals(Manifest.permission.SEND_SMS)) {
if (grantResult == PackageManager.PERMISSION_GRANTED) {
onPPSButtonPress();
} else {
requestPermissions(new String[]{Manifest.permission.SEND_SMS}, PERMISSIONS_CODE);
}
}
}
}
}
Кто-нибудь сталкивался с подобной проблемой?
Будем благодарны за любую помощь.
Спасибо

Подробнее здесь: https://stackoverflow.com/questions/327 ... ing-called

Вернуться в «Android»