Как обнаружить зеркальное отображение экрана

Мне было интересно, есть ли какой-либо способ в Android API (или любой другой lib/framework), который может помочь мне определить, зеркально ли отображается экран моего устройства с помощью WiDi,Miracast или MHL или вообще какой-либо другой техники для зеркалирования вашего экрана.

Br, Inx

4 ответа

Вы не можете обнаружить, но можете удалить функциональность, которая отражает.
Никакое программное обеспечение не может отражать, если опция разработчик является отключена.
Этот код скажет, может ли Android зеркалировать или нет.

int CanMirror = Settings.Secure.getInt(this.getContentResolver(), Settings.Global.DEVELOPMENT_SETTINGS_ENABLED , 0);
//returns 1 if can mirror
//returns 0 if can't mirror

Ссылка: /questions/53637872/obnaruzhenie-zerkalnogo-otobrazheniya-ekrana-xamarinandroid-kak-vysor/56515887#56515887

Вы можете перемещаться по списку всех отображаемых устройств и получать флаги на каждом из них для поиска, например, с помощью VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR? Не уверен, но несколько попыток позволят вам выяснить, какие из них это сделают.

cf: документация DisplayManager и VirtualDisplay

Начиная с уровня API 16 (Android 4.1, выпущенный в 2012 году, что является довольно новым, когда был задан вопрос) Android имеет MediaRouterAPI. Добавление обратного вызова для ROUTE_TYPE_LIVE_VIDEO подписывается MediaRouter.Callback.onRoutePresentationDisplayChangedвызывается при подключении или отключении внешнего дисплея. Если в приложении есть звук, другой вариант - отслеживать маршрутизированный вывод. Типы вывода TYPE_HDMI а также TYPE_REMOTE_SUBMIX используются для внешнего дисплея.

Я не уверен, что вы пытаетесь достичь, но если вы просто хотите отключить скриншоты и тому подобное, вы можете использовать FLAG_SECURE,

Другие вопросы по тегам