2015-10-05 60 views
-1

我有一個應用程序,您可以在其中計算您的卡路里。支票對講有效或不支持移動電話

我想製作一個盲模式,所以如果有人使用這個應用程序是盲人,那麼應用程序不需要向他展示圖表。

如果盲模式處於活動狀態,我需要檢查電話(對講激活)。

我該怎麼做,並檢查此權限。

我曾嘗試這個代碼,但

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訪問您的圖表。

這個思維過程有一些例外,但是,我不認爲這是其中之一。要找到你想要的,你應該這樣做的信息:

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

謝謝你的回答Chris。 –