为什么我的Android应用不会在安装时请求权限?

时间:2016-04-23 19:11:26

标签: android android-permissions

安装APK时,它会显示该应用不需要特殊权限。

在应用内启动相机时,会询问用户是否允许该应用访问相机,这很好。

尝试使用麦克风时,由于权限问题,它不会询问并强制退出。

编辑(澄清):为什么应用程序没有请求这些权限?

清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="lbu.c3369131.noter"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk
    android:minSdkVersion="23"
    android:targetSdkVersion="23" />

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAPTURE_AUDIO_OUTPUT" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />

<application

1 个答案:

答案 0 :(得分:4)

在Android 6.0上,如果targetSdkVersion为23或更高,您需要为所有requestPermissions()权限调用dangerous,此外还需要<uses-permission>个元素。清单。您何时以及何时向用户请求权限(在首次运行时,当用户单击“大红色按钮”时)由您决定。

在您的情况下,听起来您以这种方式请求CAMERA,但未能请求RECORD_AUDIO。单独请求这些可能是有意义的,特别是如果您同时操作静态相机和录制视频,因为照片不需要RECORD_AUDIO。因此,例如,在this sample app中,我首次请求CAMERA(和WRITE_EXTERNAL_STORAGE),但当用户明确要求录制视频时,我只询问RECORD_AUDIO

未能在运行时请求dangerous权限,然后使用受该权限保护的某些API,通常会产生SecurityException