Android 11 锁屏调用相机android.permission.SYSTEM_CAMERA报错

在Android 11中,新增的SYSTEM_CAMERA权限导致第三方应用无法直接调用相机。此权限级别为system|signature,要求应用必须在系统分区签名,同时在privapp-permissions.xml配置白名单。解决方案包括在AndroidManifest添加START_ACTIVITIES_FROM_BACKGROUND权限,但主要解决办法是设备制造商在系统层面进行权限配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 

遇到一个问题,在锁屏状态下调用相机调用不起来,查看了一下日志在调用相机的时候报了权限拒报错的语句为android.permission.SYSTEM_CAMERA 权限拿不到,就在应用里面配置了一下这个权限发现问题依旧,找到了部分蛛丝马迹:

解决这个问题的方式 一 :

AndroidManifest下添加 : <uses-permission android:name="android.permission.START_ACTIVITIES_FROM_BACKGROUND" /> 

解决问题的方案二

找到了google官方说明

如下:

在搭载 Android 11 或更高版本的设备上,Android 框架支持系统相机,这些相机设备仅对具有 android.permission.SYSTEM_CAMERA 权限和常规相机权限的进程可见。Android 11 中引入了 android.permission.SYSTEM_CAMERA 权限,其保护级别为 system|signature。这意味着,只有安装在系统分区上且具有与系统相同的证书或使用该证书进行签名的应用才能获得此权限。第三方公开应用无法访问系统相机。

如果设备制造商希望实现需要访问相机的功能,但这些功能仅限于特权应用或系统应用,系统相机会很有用。

由于获得 android.permission.SYSTEM_CAMERA 权限的系统应用还必须具有 android.permission.CAMERA 权限,因此用户可以选择撤消常规的 CAMERA 权限,以防止此类应用访问设备上的相机。

实现

如需将特定相机设备作为系统相机,相机 HAL 必须在其功能列表中公布 ANDROID_REQUEST_AVAILABLE_CAPABILITIES_SYSTEM_CAMERA

如需创建有权访问系统相机的应用,必须在特定于设备的 privapp-permissions.xml 文件中将相应应用列入白名单该文件用于指定必须向哪些应用予 android.permission.SYSTEM_CAMERA 权限。

看到这 理解了为啥 Android10 没有问题Android11 即使配置了 android.permission.SYSTEM_CAMERA也是无用的,必须是拥有系统签名,而且还要再在 privapp-permissions.xml配置白名单之后才能启用。

附上Google管方说明。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值