Обнаружение зеркального отображения экрана xamarin.android как vysor

Я хочу, чтобы мое приложение уведомляло, когда мое приложение используется в зеркальном отображении экрана. Точно так же я использую vysor для получения экрана Android на ПК, но мне нужно обнаруживать и закрывать при обнаружении (из-за защиты от записи экрана).

Мне нужен рабочий пример кода C# для Xamarin Android.

Что я наделал

Здесь кто-то рекомендовал использовать документацию DisplayManager и VirtualDisplay. Но я не знаю, как добиться этого в коде.

Здесь кто-то рекомендовал проверить DisplayManager.getDisplays() и посмотреть, не превышает ли он 1. Опять не работает, чтобы обнаружить высор, я попробовал с кодом.

Обновить:

Подскажите пожалуйста, что я делаю не так? Он дает 1 как в эмуляторе, так и на устройстве, в то время как vysor android mirror. Вот реализация кода:

public static bool IsMirror()
{
    DisplayManager DisplayManager = (DisplayManager)Application.Context.GetSystemService(Android.Content.Context.DisplayService);
    return DisplayManager.GetDisplays().Length > 1;
}

1 ответ

В Android это невозможно.

Справка

Самое близкое, что вы могли бы получить, - это использовать FlagSecure для предотвращения создания снимков экрана.

Наконец-то я получил рабочий ответ.
Зеркала Android, такие как vysor, не могут быть зеркальными, если не включены параметры разработчика.
Чтобы проверить, можно ли запустить зеркало, проверьте этот код ниже:

//https://stackru.com/a/31582092/11390822

var context = Android.App.Application.Context;
var resolver = context.ApplicationContext.ContentResolver;
if (Settings.Secure.GetInt(resolver, Settings.Global.DevelopmentSettingsEnabled, 0) == 1)
{
//Developer options enabled
//Mean vysor can mirror
}
else
{
//Developer options disabled
//Mean vysor can't mirror now
}

введите описание изображения здесь

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