Публичный виртуальный дисплей имеет черный экран
Я запустил этот пример: https://github.com/android/media-samples/tree/main/ScreenCapture.
И изменил отображение на общедоступное, чтобы я мог получить к нему доступ с помощью scrcpy:
mVirtualDisplay = mMediaProjection.createVirtualDisplay("ScreenCapture",
mSurfaceView.getWidth(), mSurfaceView.getHeight(), mScreenDensity,
DisplayManager.VIRTUAL_DISPLAY_FLAG_PUBLIC,
mSurface, null, null);
Когда я открываю дисплей с помощью scrcpy, я получаю полностью черный экран, а на предварительном просмотре он отображается правильно.
Почему он дает черный экран через scrcpy?
Я предполагаю, что это связано с тем, что дисплей не является безопасным (предупреждение «ПРЕДУПРЕЖДЕНИЕ: дисплей не имеет флага FLAG_SUPPORTS_PROTECTED_BUFFERS, зеркалирование может быть ограничено»), но обычное приложение не может создать безопасный виртуальный дисплей, поскольку разрешение только для системных приложений.
Любой способ заставить его работать?