Android Accessibility 輔助功能簡單介紹
Android Accessibility 輔助功能
Accessibility:
許多Android使用者因為各種情況導致他們要以不同的方式與手機交互。
這包括了有些用戶由于視力上,身體上,年齡上的問題致使他們不能看完整的屏幕或者使用觸屏,也包括了無法很好接收到語音信息和提示的聽力能力比較弱的用戶。
Android提供了Accessibility功能和服務幫助這些用戶更加簡單地操作設備,包括文字轉語音(這個不支持中文),觸覺反饋,手勢操作,軌跡球和手柄操作。
開發(fā)者可以利用這些服務使得程序更好用。
開發(fā)者可以搭建自己的Accessibility服務,這可以加強可用性,例如聲音提示,物理反饋,和其他可選的操作模式。
Accessibility服務可以為所有的應用程,一組應用程序或單個應用程序提供這些增強功能。
官方文檔中,有三篇文章介紹了Accessibility,這里只要是第三篇關于AccessibilityService的使用:
AccessibilityService使用很簡單:
1. 新建一個類繼承AccessibilityService,并在AndroidManifest文件里注冊它:
<application> <service android:name=".MyAccessibilityService" android:label="@string/accessibility_service_label"> <intent-filter> <action android:name="android.accessibilityservice.AccessibilityService" /> </intent-filter> </service> <uses-permission android:name="android.permission.BIND_ACCESSIBILITY_SERVICE" /> </application>
在<application>標簽下添加繼承了AccessibilityService的子類MyAccessibilityService,同時加入相應的權限。
2. 在子類MyAccessibilityService里實現(xiàn)幾個重要的重載方法:
onServiceConnected() - 可選。系統(tǒng)會在成功連接上你的服務的時候調用這個方法,在這個方法里你可以做一下初始化工作,例如設備的聲音震動管理,也可以調用setServiceInfo()進行配置工作。
onAccessibilityEvent() - 必須。通過這個函數(shù)可以接收系統(tǒng)發(fā)送來的AccessibilityEvent,接收來的AccessibilityEvent是經過過濾的,過濾是在配置工作時設置的。
onInterrupt() - 必須。這個在系統(tǒng)想要中斷AccessibilityService返給的響應時會調用。在整個生命周期里會被調用多次。
onUnbind() - 可選。在系統(tǒng)將要關閉這個AccessibilityService會被調用。在這個方法中進行一些釋放資源的工作。
3. 配置工作
一般在onServiceConnected()方法里進行。/Android-Sample/ApiDemos/com.example.android.apis.accessibility.ClockBackService 配置代碼:
private void setServiceInfo(int feedbackType) { AccessibilityServiceInfo info = new AccessibilityServiceInfo(); // We are interested in all types of accessibility events. info.eventTypes = AccessibilityEvent.TYPES_ALL_MASK; // We want to provide specific type of feedback. info.feedbackType = feedbackType; // We want to receive events in a certain interval. info.notificationTimeout = EVENT_NOTIFICATION_TIMEOUT_MILLIS; // We want to receive accessibility events only from certain packages. info.packageNames = PACKAGE_NAMES; setServiceInfo(info); }
需要建立一個AccessibilityServiceInfo對象,通過這個對象設置監(jiān)聽系統(tǒng)事件類型,服務的反饋類型(震動,語音,聲音),事件時間間隔,你想要監(jiān)聽的包名(或者說是應用程序)。最后調用setServiceInfo()進行設置。
注:從Android4.0開始,開發(fā)者可以通過在AndroidManifest里添加<meta-data>標簽,在標簽里指出配置文件的位置,樣例代碼:
<service android:name=".MyAccessibilityService"> ... <meta-data android:name="android.accessibilityservice" android:resource="@xml/accessibility_service_config" /> </service>
然后在/res/xml/accessibility_service_config.xml
<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android" android:description="@string/accessibility_service_description" android:packageNames="com.example.android.apis" android:accessibilityEventTypes="typeAllMask" android:accessibilityFlags="flagDefault" android:accessibilityFeedbackType="feedbackSpoken" android:notificationTimeout="100" android:canRetrieveWindowContent="true" android:settingsActivity="com.example.android.accessibility.ServiceSettingsActivity" />
更多詳細的可以參見官方文檔,或者可以看samples里的兩個例子:ClockBackService, TaskBackService。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
- Android AccessibilityService實現(xiàn)微信搶紅包插件
- Android輔助功能AccessibilityService與搶紅包輔助
- Android應用開發(fā)SharedPreferences存儲數(shù)據(jù)的使用方法
- android TextView設置中文字體加粗實現(xiàn)方法
- Android 動畫之TranslateAnimation應用詳解
- Android Bitmap詳細介紹
- android壓力測試命令monkey詳解
- android PopupWindow 和 Activity彈出窗口實現(xiàn)方式
- android客戶端從服務器端獲取json數(shù)據(jù)并解析的實現(xiàn)代碼
- 解決Android SDK下載和更新失敗的方法詳解
- android listview優(yōu)化幾種寫法詳細介紹
- Android 動畫之ScaleAnimation應用詳解
相關文章
Android中使用PagerSlidingTabStrip實現(xiàn)導航標題的示例
本篇文章主要介紹了Android中使用PagerSlidingTabStrip實現(xiàn)導航標題的示例,具有一定的參考價值,有興趣的可以了解一下。2017-01-01Android編程自定義View時添加自己的監(jiān)聽器示例
這篇文章主要介紹了Android編程自定義View時添加自己的監(jiān)聽器,涉及Android自定義view中監(jiān)聽器的添加、設置與使用相關操作技巧,需要的朋友可以參考下2018-01-01Android中EditText的drawableRight屬性設置點擊事件
這篇文章主要介紹了Android中EditText的drawableRight屬性的圖片設置點擊事件,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-10-10