为了我的应用程序的一些功能,我需要使用相机,这并不是应用程序核心功能所必需的,因此我需要指定其使用相机是可选的。因此,在清单文件中,我声明了以下权限:
<uses-permission android:name="android.permission.CAMERA"/>
<uses-feature android:name="android.hardware.camera" android:required="false"/>
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>
但是当我尝试使用以下命令通过adb授予权限时,会出现错误:
pm grant my.app.package android.permission.CAMERA
给出错误:
Operation not allowed: java.lang.SecurityException: Can't change android.permission.CAMERA. It is required by the application
我的设备已经root,并且运行的是Android 5.1.1(22)系统。根据ADB的文档,由于权限被声明为可选,我应该能够像上面提到的那样从adb中授予权限。我已经参考了this、this和this。但是我仍然无法找出原因为什么它不起作用。
提前感谢您的建议和推荐。