getActivity / XXPermissions

Android 权限请求框架,已适配 Android 14
Apache License 2.0
5.82k stars 783 forks source link

[Bug]:Android 14 Permission.RECORD_AUDIO 录制语音权限异常 #321

Closed aheven closed 2 months ago

aheven commented 2 months ago

框架版本【必填】

20.0

问题描述【必填】

在 Firebase 上看见一个异常错误 :

Caused by java.lang.SecurityException
Starting FGS with type mediaProjection callerApp=ProcessRecord{b2d7880 11144:com.*****.*****/u0a191} targetSDK=34 requires permissions: all of the permissions allOf=true [android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION] any of the permissions allOf=false [android.permission.CAPTURE_VIDEO_OUTPUT, android:project_media]

复现步骤【必填】

本地未复现

是否必现【必填】

项目 targetSdkVersion【必填】

34

出现问题的手机信息【必填】

samsung

出现问题的安卓版本【必填】

14

问题信息的来源渠道【必填】

其他渠道

是部分机型还是所有机型都会出现【必答】

Android 14

框架最新的版本是否存在这个问题【必答】

框架文档是否提及了该问题【必答】

是否已经查阅框架文档但还未能解决的【必答】

issue 列表中是否有人曾提过类似的问题【必答】

是否已经搜索过了 issue 列表但还未能解决的【必答】

是否可以通过 Demo 来复现该问题【必答】

提供报错堆栈

Caused by java.lang.SecurityException
Starting FGS with type mediaProjection callerApp=ProcessRecord{b2d7880 11144:com.*****.*****/u0a191} targetSDK=34 requires permissions: all of the permissions allOf=true [android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION] any of the permissions allOf=false [android.permission.CAPTURE_VIDEO_OUTPUT, android:project_media]

提供截图或视频

No response

提供解决方案

No response

getActivity commented 2 months ago

https://github.com/getActivity/XXPermissions/issues/246

getActivity commented 2 months ago

我可以很明确地讲 FOREGROUND_SERVICE_MEDIA_PROJECTION 既不是危险权限,也不是特殊权限,所以不存在动态申请这一说。

getActivity commented 2 months ago
image

根据你提供的报错堆栈,初步判定应该是前台服务启动的过程中出现了问题,我之前有处理过类似的问题,属于 Android 14 新特性内容,没有清单注册中前台 Service 特殊用途权限导致的,你在清单文件中加上就行了。

aheven commented 2 months ago

确实 FOREGROUND_SERVICE_MEDIA_PROJECTION 不是危险权限,我们做过 Android 14 适配,本地机型测试不出来,不知道 Firebase 为什么会出现这个异常。后续再观察一下。