如何启动AccessibilityService?

eya*_*yal 13 service android accessibility

我正在尝试使用开始实现AccessibilityService

Intent mailAccessabilityIntent = new Intent(this, EmailAccessabilityService.class);
startService(mailAccessabilityIntent);
Run Code Online (Sandbox Code Playgroud)

我的问题onServiceConnected()从未被调用过.我该如何正确启动此服务?

ala*_*anv 30

由于辅助功能服务能够探索屏幕内容并与之交互,因此用户必须在"设置">"辅助功能"中明确启用服务.启用服务后,系统将自动启动它并将其绑定到辅助功能API.

确保在应用程序清单中声明您的服务:

<service android:name=".MyAccessibilityService"
         android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
     <intent-filter>
         <action android:name="android.accessibilityservice.AccessibilityService" />
     </intent-filter>
     . . .
 </service>
Run Code Online (Sandbox Code Playgroud)

您还需要通过重写setServiceInfo(AccessibilityServiceInfo)或添加元数据属性和XML配置文件来为您的服务提供配置.

元数据属性位于<intent-filter>标记之后的<service>声明中,如下所示:

<meta-data android:name="android.accessibilityservice"
           android:resource="@xml/accessibilityservice" />
Run Code Online (Sandbox Code Playgroud)

您引用的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"
    . . .
/>
Run Code Online (Sandbox Code Playgroud)

有关您可以在http://developer.android.com/reference/android/R.styleable.html#AccessibilityService上使用哪些标签的更多信息.

  • @ v1sc3rr4k系统链接服务(例如辅助功能服务)崩溃后,系统不会重新启动系统,直到重置权限或重新启动操作系统.尝试撤消权限并再次启用它,服务将重新启动.希望能帮助到你. (4认同)

Jon*_*lis 1

我今天刚刚做了这个。一旦您的服务被创建并通过可访问性意图过滤器正确地列在清单文件中。然后您的服务将出现在设置-辅助功能-服务下。您可以通过单击它然后将其打开来启动它。我不知道如何通过意图启动它(如果可能的话)。我认为Lee GPS只能导航用户到开始按钮。