国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android Accessibility 輔助功能簡單介紹

2019-12-12 04:32:53
字體:
來源:轉載
供稿:網友

Android Accessibility 輔助功能

Accessibility:

許多Android使用者因為各種情況導致他們要以不同的方式與手機交互。

這包括了有些用戶由于視力上,身體上,年齡上的問題致使他們不能看完整的屏幕或者使用觸屏,也包括了無法很好接收到語音信息和提示的聽力能力比較弱的用戶。

Android提供了Accessibility功能和服務幫助這些用戶更加簡單地操作設備,包括文字轉語音(這個不支持中文),觸覺反饋,手勢操作,軌跡球和手柄操作。

開發者可以利用這些服務使得程序更好用。

開發者可以搭建自己的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里實現幾個重要的重載方法:

onServiceConnected() - 可選。系統會在成功連接上你的服務的時候調用這個方法,在這個方法里你可以做一下初始化工作,例如設備的聲音震動管理,也可以調用setServiceInfo()進行配置工作。

onAccessibilityEvent() - 必須。通過這個函數可以接收系統發送來的AccessibilityEvent,接收來的AccessibilityEvent是經過過濾的,過濾是在配置工作時設置的。

onInterrupt() - 必須。這個在系統想要中斷AccessibilityService返給的響應時會調用。在整個生命周期里會被調用多次。
onUnbind() - 可選。在系統將要關閉這個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對象,通過這個對象設置監聽系統事件類型,服務的反饋類型(震動,語音,聲音),事件時間間隔,你想要監聽的包名(或者說是應用程序)。最后調用setServiceInfo()進行設置。

注:從Android4.0開始,開發者可以通過在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。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 舟山市| 灵寿县| 黄大仙区| 达拉特旗| 台中县| 淮滨县| 永宁县| 诸暨市| 板桥市| 盐边县| 彭山县| 城步| 景宁| 隆安县| 宁南县| 海阳市| 鲁甸县| 万州区| 磐安县| 海丰县| 舒城县| 博野县| 大埔县| 沧州市| 宜春市| 陇西县| 武安市| 沈丘县| 阳泉市| 乌拉特后旗| 临洮县| 拉孜县| 东宁县| 永嘉县| 常山县| 曲沃县| 上林县| 繁峙县| 茂名市| 宣城市| 海晏县|