【发布时间】:2017-08-07 07:42:06
【问题描述】:
我不确定我是否完全理解这一点。因此,对于 AndroidManifest.xml 来请求权限,但是 Lollipop 和更高版本的 API 我们有 Requesting permission on runtime 功能。所以我用这个简单的代码来使用它:
if (Build.VERSION.SDK_INT >= 23) {
mPermissionsToBeAsked.clear();
for (String permission : AudioRecordingThread.PERMISSIONS_NEEDED) {
if (checkSelfPermission(permission) != PackageManager.PERMISSION_GRANTED) {
mPermissionsToBeAsked.add(permission);
}
} ....
然后,如果该列表不为空,我将请求他们:
if (mPermissionsToBeAsked.size() > 0) {
requestPermissions(mPermissionsToBeAsked.toArray(new String[0]), AUDIO_PERMISSIONS_REQUEST_CODE);
}
但是,出于某种原因,在设备上,例如搭载 Android 6.0.1 的三星 Galaxy S7,在安装应用程序时默认授予所有权限。所以我想知道为什么,但是,当我在应用程序管理器中转到我的应用程序并手动删除麦克风权限时,在应用程序中 checkSelfPermission(permission) 仍然返回 GRANTED。所以问题:
- 为什么在具有 API 级别 Lollipop 和更高级别的设备上仍默认授予所有权限,并且上述代码不会向
mPersmissionToBeAsked添加任何内容? - 为什么如果我在应用程序管理器
checkSelfPermission(android.permission.RECORD_AUDIO)中手动删除标题为 MICROPHONE 的权限仍然返回 GRANTED?
【问题讨论】:
标签: android permissions android-manifest android-5.0-lollipop runtime-permissions