You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android 12实现STILL_IMAGE_CAPTURE_SECURE不被系统识别问题咨询

导致Android 12设备无法响应STILL_IMAGE_CAMERA_SECURE intent的可能原因如下:

  • 默认相机优先级逻辑变更:Android 12调整了锁屏相机的调用逻辑,不再默认弹出Intent选择器,会直接调用用户设置的默认相机应用的对应实现。如果谷歌相机被设为默认相机,系统就会直接跳转谷歌相机;如果未设置默认相机且无符合要求的系统内置相机,就会出现无响应的情况。你可以进入系统设置-应用-默认应用,将你的自研相机设为默认相机后再测试。
  • 相机运行时权限校验要求新增:Android 12对安全相机调用增加了前置权限校验,只有已经获得用户授予的android.permission.CAMERA运行时权限的应用,才会被纳入候选列表。如果你的应用还没有向用户申请相机运行时权限,即使注册了intent filter也会被系统过滤。
  • 锁屏展示属性适配问题:Android 12中仅在Manifest里声明showWhenLocked、showOnLockScreen属性已经不满足要求,需要在目标Activity的onCreate生命周期中显式调用以下代码:
// 适配Android12+锁屏唤起要求
setShowWhenLocked(true);
setTurnScreenOn(true);

否则系统会判定你的Activity不支持锁屏场景展示,直接排除出候选列表。

  • 废弃权限导致的拦截:android.permission.DISABLE_KEYGUARD权限在Android 12中已经被正式废弃,使用该旧权限的应用会被系统判定不符合锁屏运行的安全要求。你需要替换为KeyguardManager系统服务的requestDismissKeyguard()方法来实现解锁相关逻辑。
  • Intent Filter匹配规则变更:部分AOSP Android 12分支的系统发送STILL_IMAGE_CAMERA_SECURE intent时会额外携带android.intent.category.LAUNCHER category,你可以在对应Activity的intent filter中新增该category声明,避免匹配失败:
<intent-filter>
    <action android:name="android.media.action.STILL_IMAGE_CAMERA_SECURE" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

内容的提问来源于stack exchange,提问作者Son of Stackoverflow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 01:18:00