Ответ 1
Когда я пытаюсь проверитьSelfPermission с помощью license_group (т.е. Manifest.permission_group.CAMERA) при первом запуске, я предсказую, что получаю PackageManager.PERMISSION_DENIED.
Это потому, что checkSelfPermission()
проверяет разрешения, а не группы разрешений.
Затем попробуйте запросить предложения для той же самой группы полномочий и я не получу всплывающее диалоговое окно. 'onRequestPermissionsResult' немедленно возвращает -1.
Это потому, что requestPermissions()
работает с разрешениями, а не с группами разрешений.
Предполагается, что checkSelfPermission и requestPermission должны работать с Manifest.permission. *
Да.
и Manifest.permission_group. *
Нет.
Или был этот преднамеренный дизайн?
Предположительно, да. По крайней мере, на checkSelfPermission()
он накладывает поверх других ранее существовавших методов, которые относятся к уровню API 1 и работают с разрешениями, а не группами разрешений.
когда мне нужно только запросить группу полномочий_управления
Вы делаете предположения о будущем Android, которые могут быть неточными. Сейчас, до-M, группы разрешений не особенно важны, и разрешения имеют значение. В M группы разрешений приобретают все большее значение, поскольку именно это M использует в своем представлении конечным пользователям, что может контролировать пользователь. Однако версии Android после этого могут предложить более тонкую детализацию по этому вопросу, будь то отдельным пользователям или предприятиям с помощью политик, и это, вероятно, вернется к разрешениям.
API предлагает, чтобы Google оставлял дверь открытой для этих ходов. По сути, материал группы разрешений - это решение UX, а не техническое.