我正在尝试使用
开始实现AccessibilityServiceIntent mailAccessabilityIntent = new Intent(this, EmailAccessabilityService.class);
startService(mailAccessabilityIntent);
我的问题是onServiceConnected()
从未被调用过。
如何正确启动此服务?
答案 0 :(得分:29)
由于辅助功能服务能够探索屏幕内容并与之交互,因此用户必须在设置>中明确启用服务。可访问性。启用服务后,系统将自动启动它并将其绑定到辅助功能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)或添加元数据属性和XML配置文件来为您的服务提供配置。
元数据属性位于&lt; service&gt;中&lt; intent-filter&gt;之后的声明标记,看起来像这样:
<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
使用哪些标签的更多信息答案 1 :(得分:1)
我今天刚刚这样做了。创建服务后,使用可访问性意图过滤器在清单文件中正确列出该服务。然后您的服务将显示在settings-accessibility-services下。您可以通过单击它然后将其切换来启动它。如果它甚至可能,我不知道如何通过意图启动它。我认为它的Lee GPS你只能导航用户启动按钮。