Выбор «одно приложение» в Android14 вызывает ошибку createvirtualdisplay ()Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Выбор «одно приложение» в Android14 вызывает ошибку createvirtualdisplay ()

Сообщение Anonymous »

outlook < /h1>
Недавнее обновление безопасности Включите устройства Android 14 для выбора «одно приложение» с захватом экрана. В моем приложении Android, когда пользователь выбирает «одно приложение», и выберите самое приложение в следующем диалоге, CreateVirtualDisplay () делает ошибку «не может создать виртуальный дисплей: xxxx (отображение имени)».
Изображение: выбрать «одно приложение»
Если возможно, я хочу узнать причину и исправить его. /> Ошибка происходит из этого кода. (не связанный код опущен) < /p>

Код: Выделить всё

class HogehogeActivity : AppCompatActivity(), org.webrtc.VideoCapturer {

private lateinit var screenCaptureLauncher: ActivityResultLauncher

private var surfaceTextureHelper: SurfaceTextureHelper? = null

override fun onCreate() {
screenCaptureLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
if (it.resultCode != Activity.RESULT_OK) {
return@registerForActivityResult
}
val data = it.data ?: return@registerForActivityResult

if (!Settings.canDrawOverlays(this)) return@registerForActivityResult

val manager = getSystemService(Context.MEDIA_PROJECTION_SERVICE) as? MediaProjectionManager ?: return@registerForActivityResult
val mediaProjection = manager.getMediaProjection(Activity.RESULT_OK, screenCaptureIntent) ?: return@registerForActivityResult

// Error occur: [DisplayManager] Could not create virtual display: WebRTC_ScreenCapture
val virtualDisplay = mediaProjection.createVirtualDisplay(
"WebRTC_ScreenCapture",
480,
640,
400,
VIRTUAL_DISPLAY_FLAG_PUBLIC.or(VIRTUAL_DISPLAY_FLAG_PRESENTATION),
Surface(surfaceTextureHelper?.surfaceTexture),
null,
null
)
}

// user tap button to start screen capture.
binding.button.setOnClickLisner {
val manager = (activity.getSystemService(Context.MEDIA_PROJECTION_SERVICE) as MediaProjectionManager)
val screenCaptureIntent = manager.createScreenCaptureIntent()
screenCaptureLauncher.launch(screenCaptureIntent)
}
}

override fun initialize(
surfaceTextureHelper: SurfaceTextureHelper?,
applicationContext: Context?,
capturerObserver: CapturerObserver?
) {
this.surfaceTextureHelper = surfaceTextureHelper
}

}
< /code>
Я попробовал < /p>

createVirtualDisplay()
Изменение аргументов.>

Подробнее здесь: https://stackoverflow.com/questions/787 ... play-error
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»