2015-10-05 5 views
-1

У меня есть приложение, в котором вы можете рассчитать свои калории.Check 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); 
+0

Возможный дубликат [Как знать, если Android озвучиваться активен] (https://stackoverflow.com/questions/5116867/how-to-know- if-android-talkback-is-active) – Jonik

ответ

1

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

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

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

Settings.Secure.getInt(this.getContentResolver(),android.provider.Settings.Secure.ACCESSIBILITY_ENABLED); 
+0

Благодарим вас за ответ Крис. –