Android:Разрешения для служб переднего плана — для записи экрана ⇐ Android
Android:Разрешения для служб переднего плана — для записи экрана
Поэтому в моем приложении я разрешаю пользователю записывать свой экран, для простоты использования я использую библиотеку HBRecorder. Для Android 14+ вам необходимо объявить службы переднего плана в своем манифесте и запросить разрешения у пользователя. Я сделал это, но получаю предупреждения о политике от Google (также ниже). Что мне не хватает? как будто я удаляю какое-либо из этих разрешений, я получаю исключение безопасности на устройствах Android 14.
Видео, которое я загрузил для Google, ясно показывает, что пользователю предлагается записать экран, и в сообщении объясняется, почему, а также видно, что запись активна только во время активности.
Значит, я явно что-то упускаю, кто-нибудь уже сталкивался с этим?
//Разрешения манифеста //Функция, запрашивающая разрешение `fun requestPermissions (активность: Активность) { разрешения val = mutableListOf() Permissions.add(Manifest.permission.CAMERA) Permissions.add(Manifest.permission.READ_EXTERNAL_STORAGE) Permissions.add(Manifest.permission.WRITE_EXTERNAL_STORAGE) Permissions.add(Manifest.permission.RECORD_AUDIO) Permissions.add(Manifest.permission.ACCESS_MEDIA_LOCATION) Permissions.add(Manifest.permission.CAPTURE_AUDIO_OUTPUT) если (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { Permissions.add(Manifest.permission.MANAGE_EXTERNAL_STORAGE) > } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { Permissions.add(Manifest.permission.READ_MEDIA_VIDEO) > } если (Build.VERSION.SDK_INT >= 34) { Permissions.add(Manifest.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION) Permissions.add(Manifest.permission.FOREGROUND_SERVICE) > }` //функция для начала записи ` весело startRecordingScreen() { val mediaProjectionManager = getSystemService(MEDIA_PROJECTION_SERVICE) как MediaProjectionManager val PermissionIntent = mediaProjectionManager.createScreenCaptureIntent() startActivityForResult(permissionIntent!!, SCREEN_RECORD_REQUEST_CODE) btnRecordMain.setBackgroundResource(R.drawable.btnrecordd) }` Предупреждения Предупреждение 1 Предупреждение 2
Я удалил разрешения для служб переднего плана, а затем Google удалил предупреждения политики. Проблема в устройствах Android 14. Если я удалю любое из трех разрешений, я получаю следующее исключение.
Я удалял по одному и тестировал на устройствах Android 14, и каждый раз происходил сбой.
java.lang.SecurityException: в android.os.Parcel.createExceptionOrNull (Parcel.java:3069) в android.os.Parcel.createException (Parcel.java:3053) в android.os.Parcel.readException (Parcel.java:3036) в android.os.Parcel.readException (Parcel.java:2978) в android.app.IActivityManager$Stub$Proxy.setServiceForeground (IActivityManager.java:7214) в android.app.Service.startForeground (Service.java:775) на com.hbisoft.hbrecorder.ScreenRecordService.onStartCommand (ScreenRecordService.java:234) в android.app.ActivityThread.handleServiceArgs (ActivityThread.java:5268)` `
Поэтому в моем приложении я разрешаю пользователю записывать свой экран, для простоты использования я использую библиотеку HBRecorder. Для Android 14+ вам необходимо объявить службы переднего плана в своем манифесте и запросить разрешения у пользователя. Я сделал это, но получаю предупреждения о политике от Google (также ниже). Что мне не хватает? как будто я удаляю какое-либо из этих разрешений, я получаю исключение безопасности на устройствах Android 14.
Видео, которое я загрузил для Google, ясно показывает, что пользователю предлагается записать экран, и в сообщении объясняется, почему, а также видно, что запись активна только во время активности.
Значит, я явно что-то упускаю, кто-нибудь уже сталкивался с этим?
//Разрешения манифеста //Функция, запрашивающая разрешение `fun requestPermissions (активность: Активность) { разрешения val = mutableListOf() Permissions.add(Manifest.permission.CAMERA) Permissions.add(Manifest.permission.READ_EXTERNAL_STORAGE) Permissions.add(Manifest.permission.WRITE_EXTERNAL_STORAGE) Permissions.add(Manifest.permission.RECORD_AUDIO) Permissions.add(Manifest.permission.ACCESS_MEDIA_LOCATION) Permissions.add(Manifest.permission.CAPTURE_AUDIO_OUTPUT) если (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { Permissions.add(Manifest.permission.MANAGE_EXTERNAL_STORAGE) > } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { Permissions.add(Manifest.permission.READ_MEDIA_VIDEO) > } если (Build.VERSION.SDK_INT >= 34) { Permissions.add(Manifest.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION) Permissions.add(Manifest.permission.FOREGROUND_SERVICE) > }` //функция для начала записи ` весело startRecordingScreen() { val mediaProjectionManager = getSystemService(MEDIA_PROJECTION_SERVICE) как MediaProjectionManager val PermissionIntent = mediaProjectionManager.createScreenCaptureIntent() startActivityForResult(permissionIntent!!, SCREEN_RECORD_REQUEST_CODE) btnRecordMain.setBackgroundResource(R.drawable.btnrecordd) }` Предупреждения Предупреждение 1 Предупреждение 2
Я удалил разрешения для служб переднего плана, а затем Google удалил предупреждения политики. Проблема в устройствах Android 14. Если я удалю любое из трех разрешений, я получаю следующее исключение.
Я удалял по одному и тестировал на устройствах Android 14, и каждый раз происходил сбой.
java.lang.SecurityException: в android.os.Parcel.createExceptionOrNull (Parcel.java:3069) в android.os.Parcel.createException (Parcel.java:3053) в android.os.Parcel.readException (Parcel.java:3036) в android.os.Parcel.readException (Parcel.java:2978) в android.app.IActivityManager$Stub$Proxy.setServiceForeground (IActivityManager.java:7214) в android.app.Service.startForeground (Service.java:775) на com.hbisoft.hbrecorder.ScreenRecordService.onStartCommand (ScreenRecordService.java:234) в android.app.ActivityThread.handleServiceArgs (ActivityThread.java:5268)` `
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Исключение Android 14 при запуске службы переднего плана с типами переднего плана
Anonymous » » в форуме Android - 0 Ответы
- 60 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Каталог служб WSO2 4.3.0 (произошла ошибка при получении служб из каталога служб.)
Anonymous » » в форуме Apache - 0 Ответы
- 63 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Каталог служб WSO2 4.3.0 (произошла ошибка при получении служб из каталога служб.)
Anonymous » » в форуме JAVA - 0 Ответы
- 31 Просмотры
-
Последнее сообщение Anonymous
-