Проверьте, активен ли 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);