Android.Accessibility包之AccessiblityService類

accessibility service概念

“信息無障礙”起源于西方發(fā)達(dá)國家,譯自Accessibility,指任何人在任何情況下都能平等、方便、無障礙地獲取信息并利用信息。在Android里,accessiblity service的目的主要用來協(xié)助有身體缺陷的用戶使用android設(shè)備和應(yīng)用。

Android有自帶的accessibility功能,如talkback。但其作用域只在系統(tǒng)自帶的軟件。同時(shí),開發(fā)者也可以通過繼承AccessiblityService類為自己的應(yīng)用自定義accessibility功能。

運(yùn)行機(jī)制

accessiblity service在后臺(tái)運(yùn)行,并由用戶的行為產(chǎn)生的AccessibilityEvents觸發(fā)service的回調(diào)方法。這些AccessibilityEvents可以是視圖焦點(diǎn)變化、按鈕被點(diǎn)擊和界面滾動(dòng)等。

生命周期

  • 啟動(dòng):
    當(dāng)帶有accessiblity service的應(yīng)用在Android設(shè)備安裝后,可通過設(shè)備里設(shè)置-->無障礙服務(wù) 為應(yīng)用開啟服務(wù)。開后,Service的onCreate(),onServiceConnection()的方法會(huì)被先后調(diào)用。開發(fā)者可在這些方法進(jìn)行一些初始化動(dòng)作。
  • 運(yùn)行
    服務(wù)啟動(dòng)后,用戶行為觸發(fā)的AccessibilityEvents會(huì)回調(diào)服務(wù)的onAccessibilityEvent(AccessibilityEvent event) 的方法。
  • 結(jié)束
    當(dāng)用戶通過設(shè)備里設(shè)置-->無障礙服務(wù) 為應(yīng)用關(guān)閉服務(wù)后,服務(wù)便終止。通過AccessiblityService的disableSelf()方法也可以終止服務(wù).

聲明與配置

  • 聲明
    AccessiblityService需要在AndroidManifest.xml中進(jìn)行聲明,一是通過BIND_ACCESSIBILITY_SERVICE讓系統(tǒng)識(shí)別出這是個(gè)無障礙服務(wù),二是為了聲明該服務(wù)用于處理的Intent類型。
 <service android:name=".MyAccessibilityService"
         android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
     <intent-filter>
         <action android:name="android.accessibilityservice.AccessibilityService" />
     </intent-filter>
     . . .
 </service>
  • 配置
    配置的目的主要是設(shè)置該accessibilityservice用于哪個(gè)應(yīng)用、處理哪種事件和獲取事件的時(shí)間間隔等。
    配置有兩種方式,一是通過XML文件配置,如:
 <service android:name=".MyAccessibilityService">
     <intent-filter>
         <action android:name="android.accessibilityservice.AccessibilityService" />
     </intent-filter>
     <meta-data android:name="android.accessibilityservice" android:resource="@xml/accessibilityservice" />
 </service>

二是通過代碼setServiceInfo(AccessibilityServiceInfo)配置。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,819評(píng)論 25 708
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,837評(píng)論 18 139
  • 念念不忘 紅漆窗在等曾經(jīng)伏上它的人 窗外的景色已是落葉紛飛 我在夢(mèng)里翹首以望 月亮下小小的身影獨(dú)自搖晃 月光還是那...
    卻_7149閱讀 412評(píng)論 5 7
  • 那些所有你日日夜夜夢(mèng)寐以求想要擁有的,其實(shí)都會(huì)來的很簡(jiǎn)單,只要你隨性淡然,無喜無憂地去擁抱生命里的一切.當(dāng)你轉(zhuǎn)身時(shí)...
    楊宇鵬yipong閱讀 502評(píng)論 8 4
  • 紀(jì)錄片同劇情片的區(qū)別就好比是非虛構(gòu)文學(xué)同小說的區(qū)別。非虛構(gòu)的價(jià)值在于真實(shí),如果硬要拿評(píng)價(jià)小說的那一套來要求非虛構(gòu)文...
    李盒閱讀 249評(píng)論 0 0