как определить активен TalkBack?используя Xamarin Forms -Dependency сервис - PullRequest
0 голосов
/ 12 февраля 2019

enter image description here Я хочу вернуть значение true или false, если активен TalkBack.

public bool IsVoiceOver () {

     AccessibilityManager am = (AccessibilityManager) 
     Context.AccessibilityService;

        var a =  am.IsEnabled;
        if (!a) 
        {
            Console.WriteLine(" DROID voice over   is : " + a);
            return false;
        }
        else 
        {
            Console.WriteLine("DROID voice over  is : " + a);
        return true;
        }
    }

Однако "AccessibilityManager" не работает.Я думаю, что проблема синтаксиса не уверен.

1 Ответ

0 голосов
/ 22 февраля 2019

Что вы можете сделать, это проверить с помощью AccessibilityManager, доступен ли он или нет

Что-то вроде ниже:

 AccessibilityManager am = (AccessibilityManager)GetSystemService(Context.AccessibilityService);

 if (am.IsEnabled) 
    {
        Console.WriteLine(" DROID voice over is active);
        return am.IsEnabled;
    }
    else 
    {
        Console.WriteLine("DROID voice over is inactive);
        return am.IsEnabled;
    }

не забудьте добавить следующее с помощью операторов:

using Android.Views.Accessibility;
using Android.Content;

ОБНОВЛЕНИЕ

Для доступа к методу GetSystemService вам потребуется Текущий плагин активности

  • Установите для него пакет NuGet.

  • Просто вызовите метод Init при OnCreate вашей MainActivity CrossCurrentActivity.Current.Init(this, bundle);

  • Затем вы можете вызвать метод GetSystemService, как показано ниже:

      AccessibilityManager am = (AccessibilityManager)CrossCurrentActivity.Current.Activity.GetSystemService(Context.AccessibilityService);
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...