自从瞄准 SDK 34 (Android 14) 以来,我在 Android 14 上看到了一些崩溃(尽管 Android 14 用户中的一小部分):
java.lang.SecurityException: Starting FGS with type mediaProjection callerApp=ProcessRecord{44a8006 6938:com.foo/u0a6} 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]
at android.os.Parcel.createExceptionOrNull(Parcel.java:3069)
at android.os.Parcel.createException(Parcel.java:3053)
at android.os.Parcel.readException(Parcel.java:3036)
at android.os.Parcel.readException(Parcel.java:2978)
at android.app.IActivityManager$Stub$Proxy.setServiceForeground(IActivityManager.java:7214)
at android.app.Service.startForeground(Service.java:775)
at com.foo.FooService.onStartCommand(FooService.java:28)
到目前为止,仅适用于 Galaxy A13 和 A72。
这可能是什么原因造成的?
我也遇到了这个问题,因此,为了解决它,首先我在 AndroidManifest.xml 文件中添加了以下权限:
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION" />`
然后我必须添加此权限并将其标记为签名权限:
uses-permission android:name="android.permission.CAPTURE_VIDEO_OUTPUT"
android:protectionLevel="signature"
tools:ignore="ProtectedPermissions" />