Ошибка Starting FGS with type mediaProjection

Вчера с ничего просто перестал работать код записи экрана. Проверил в коде всё нормально, как и было до ошибки. Ума не приложу, что случилось. Приложение стало крашится при запуске с ошибкой:

Вы в ScreenCapService
2023-12-26 12:38:10.440 23479-23479 AndroidRuntime          com.example.testsub                  D  Shutting down VM
2023-12-26 12:38:10.443 23479-23479 AndroidRuntime          com.example.testsub                  E  FATAL EXCEPTION: main (Ask Studio Bot)
                                                                                                    Process: com.example.testsub, PID: 23479
                                                                                                    java.lang.RuntimeException: Unable to create service com.example.testsub.ScreenCapService: java.lang.SecurityException: Starting FGS with type mediaProjection callerApp=ProcessRecord{3dbc7e 23479:com.example.testsub/u0a292} 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.app.ActivityThread.handleCreateService(ActivityThread.java:4852)
                                                                                                        at android.app.ActivityThread.-$$Nest$mhandleCreateService(Unknown Source:0)
                                                                                                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2358)
                                                                                                        at android.os.Handler.dispatchMessage(Handler.java:106)
                                                                                                        at android.os.Looper.loopOnce(Looper.java:205)
                                                                                                        at android.os.Looper.loop(Looper.java:294)
                                                                                                        at android.app.ActivityThread.main(ActivityThread.java:8470)
                                                                                                        at java.lang.reflect.Method.invoke(Native Method)
                                                                                                        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
                                                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:878)
                                                                                                    Caused by: java.lang.SecurityException: Starting FGS with type mediaProjection callerApp=ProcessRecord{3dbc7e 23479:com.example.testsub/u0a292} 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:3160)
                                                                                                        at android.os.Parcel.createException(Parcel.java:3144)
                                                                                                        at android.os.Parcel.readException(Parcel.java:3127)
                                                                                                        at android.os.Parcel.readException(Parcel.java:3069)
                                                                                                        at android.app.IActivityManager$Stub$Proxy.setServiceForeground(IActivityManager.java:6861)
                                                                                                        at android.app.Service.startForeground(Service.java:775)
                                                                                                        at com.example.testsub.ScreenCapService.onCreate(MainActivity.kt:216)
                                                                                                        at android.app.ActivityThread.handleCreateService(ActivityThread.java:4839)
                                                                                                        at android.app.ActivityThread.-$$Nest$mhandleCreateService(Unknown Source:0) 
                                                                                                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2358) 
                                                                                                        at android.os.Handler.dispatchMessage(Handler.java:106) 
                                                                                                        at android.os.Looper.loopOnce(Looper.java:205) 
                                                                                                        at android.os.Looper.loop(Looper.java:294) 
                                                                                                        at android.app.ActivityThread.main(ActivityThread.java:8470) 
                                                                                                        at java.lang.reflect.Method.invoke(Native Method) 
                                                                                                        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552) 
                                                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:878) 
                                                                                                    Caused by: android.os.RemoteException: Remote stack trace:
                                                                                                        at com.android.server.am.ActiveServices.validateForegroundServiceType(ActiveServices.java:2684)
                                                                                                        at com.android.server.am.ActiveServices.setServiceForegroundInnerLocked(ActiveServices.java:2374)
                                                                                                        at com.android.server.am.ActiveServices.setServiceForegroundLocked(ActiveServices.java:1703)
                                                                                                        at com.android.server.am.ActivityManagerService.setServiceForeground(ActivityManagerService.java:13592)
                                                                                                        at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:3430)

Вот код где программа крашится:

class ScreenCapService : Service() {
    override fun onCreate() {
        super.onCreate()
        Log.i(TAG, "Вы в ScreenCapService")
        val serviceChannel = NotificationChannel(
            "1",
            "Foreground Service Channel",
            NotificationManager.IMPORTANCE_DEFAULT
        )
        getSystemService(NotificationManager::class.java).createNotificationChannel(serviceChannel)

        val notification: Notification = Notification.Builder(this, "1")
            .setContentTitle("Foreground Service")
            .build()

        startForeground(1, notification) <-----На этой строчке всё ломается
    }

    override fun onBind(intent: Intent?): IBinder? {
        return null
    }
} 

Вот часть манифеста:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">
    <uses-permission android:name="android.permission.BATTERY_STATS" tools:ignore="ProtectedPermissions"/>
    <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.RECORD_AUDIO"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
    <uses-permission android:name="android.permission.CAPTURE_AUDIO_OUTPUT" tools:ignore="ProtectedPermissions"/>
    <uses-permission android:name="android.permission.CAPTURE_VIDEO_OUTPUT" tools:ignore="ProtectedPermissions"/>
    <uses-permission android:name="android.permission.CAPTURE_SECURE_VIDEO_OUTPUT" tools:ignore="ProtectedPermissions" />
    <uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>
    <uses-permission android:name="android.permission.READ_MEDIA_VIDEO"/>
    <uses-permission android:name="android.permission.READ_MEDIA_AUDIO"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" tools:ignore="ProtectedPermissions"/>
    <uses-permission android:name="android.permission.WRITE_SETTINGS" tools:ignore="ProtectedPermissions"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION"/>
    <application
        android:allowBackup="true"
        android:dataExtractionRules="@xml/data_extraction_rules"
        android:fullBackupContent="@xml/backup_rules"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.Testsub"
        >
        <service android:enabled="true"
            android:name=".ScreenCapService"
            android:foregroundServiceType="mediaProjection"> </service>

Может кто знает что случилось? Android 14, Pixel 6 Pro. Устройство рутировано.


Ответы (0 шт):