Проверьте, активен ли Talkback или нет на мобильном телефоне.

У меня есть приложение, где вы можете рассчитать свои калории.

Я хочу сделать слепой режим, поэтому, если кто-то использует это приложение, которое является слепым, то приложению не нужно показывать ему диаграмму.

Мне нужно проверить на телефоне, активен ли слепой режим или нет (активирован Talkback).

Как я могу это сделать и проверить это разрешение.

Я пробовал этот код, но он не работает

Intent screenReaderIntent = new Intent("android.accessibilityservice.AccessibilityService");
screenReaderIntent.addCategory("android.accessibilityservice.category.FEEDBACK_SPOKEN");

List<ResolveInfo> screenReaders = getPackageManager().queryIntentServices(screenReaderIntent, 0);

Cursor cursor = null;

ContentResolver cr = getContentResolver();

for (ResolveInfo screenReader : screenReaders) {
cursor = cr.query(Uri.parse("content://" +      screenReader.serviceInfo.packageName
        + ".providers.StatusProvider"), null, null, null, null); 

1 ответ

Вы думаете об этом совершенно неправильно. Делая это, вы нарушаете доступность вашего приложения. Помните, что доступность - это не только то, как незрячие пользователи используют ваше приложение. Есть огромное множество разных видов инвалидности. Как насчет слабовидящих пользователей? Или те, у кого дислексия? Пользователи, у которых нет проблем с просмотром, но которые используют TalkBack для чтения текста, потому что для них это удобнее, чем функции масштабирования?

Отдельный НЕ равен. Вы должны сделать все возможное, чтобы сделать вашу диаграмму доступной с TalkBack.

Есть несколько исключений из этого процесса мышления, однако я не верю, что это одно из них. Чтобы найти информацию, которую вы хотите, вы должны сделать это:

Settings.Secure.getInt(this.getContentResolver(),android.provider.Settings.Secure.ACCESSIBILITY_ENABLED);
Другие вопросы по тегам