我正在尝试使用 AccessibilityService 开始实现
Intent mailAccessabilityIntent = new Intent(this, EmailAccessabilityService.class);
startService(mailAccessabilityIntent);
我的问题是onServiceConnected()
从未被调用。我该如何正确启动这个服务?
我正在尝试使用 AccessibilityService 开始实现
Intent mailAccessabilityIntent = new Intent(this, EmailAccessabilityService.class);
startService(mailAccessabilityIntent);
我的问题是onServiceConnected()
从未被调用。我该如何正确启动这个服务?
因为可访问性服务能够探索和与屏幕内容交互,用户必须显式地在“设置”>“辅助功能”中启用服务。一旦服务被启用,系统将自动启动并绑定到可访问性API。
确保在应用程序清单中声明您的服务:
<service android:name=".MyAccessibilityService"
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
<intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter>
. . .
</service>
您还需要为您的服务提供配置,可以通过覆盖setServiceInfo(AccessibilityServiceInfo)或添加meta-data属性和XML配置文件来实现。
meta-data属性放在<service>声明中的<intent-filter>标记之后,看起来像这样:
<meta-data android:name="android.accessibilityservice"
android:resource="@xml/accessibilityservice" />
你引用的XML配置(在这种情况下,accessibilityservice.xml)看起来像这样:
<accessibility-service
android:accessibilityEventTypes="typeViewClicked|typeViewFocused"
android:packageNames="foo.bar, foo.baz"
android:accessibilityFeedbackType="feedbackSpoken"
android:notificationTimeout="100"
android:accessibilityFlags="flagDefault"
android:settingsActivity="foo.bar.TestBackActivity"
android:canRetrieveWindowContent="true"
. . .
/>
你可以在http://developer.android.com/reference/android/R.styleable.html#AccessibilityService找到更多可用的标签信息。