Vì dịch vụ trợ năng có thể khám phá và tương tác với nội dung trên màn hình, người dùng phải bật dịch vụ trong Cài đặt> Trợ năng một cách rõ ràng. Khi dịch vụ được bật, hệ thống sẽ tự động khởi động và liên kết nó với API trợ năng.
Hãy chắc chắn rằng bạn khai báo dịch vụ của bạn trong manifest ứng dụng của bạn:
<service android:name=".MyAccessibilityService"
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
<intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter>
. . .
</service>
Bạn cũng sẽ cần cung cấp cấu hình cho dịch vụ của bạn, hoặc bằng cách ghi đè setServiceInfo (AccessibilityServiceInfo) hoặc thêm một thuộc tính siêu dữ liệu và XML tập tin cấu hình.
Thuộc tính siêu dữ liệu đi trong < dịch vụ > khai của bạn sau khi < ý định lọc > thẻ và trông như thế này:
<meta-data android:name="android.accessibilityservice"
android:resource="@xml/accessibilityservice" />
Các cấu hình XML mà bạn đang tham khảo (trong trường hợp này, accessibilityservice .xml) trông như thế này:
<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"
. . .
/>
có thêm thông tin về những thẻ nào bạn có thể sử dụng tại http://developer.android.com/reference/android/R.styleable.html#AccessibilityService
bạn thực sự xứng đáng có rất nhiều upvotes. Bởi vì ngay cả tài liệu là sai tại http://developer.android.com/guide/topics/ui/accessibility/services.html. Bạn đã hiển thị đúng cách để tạo dịch vụ trợ năng – gaurav414u
@alanv "Khi dịch vụ được bật, hệ thống sẽ tự động khởi động và liên kết nó với API trợ năng". Tôi có câu hỏi, Dịch vụ trợ năng của tôi sau khi đã bật công việc. Bit khi nó treo nó kết quả cho phép trong thiết lập tue nhưng nó không dẫn đến dịch vụ thực hiện. Tại sao Hệ thống không khởi động lại dịch vụ của tôi sau một sự cố nhưng vẫn cho phép kết quả? – Hoper
@ v1sc3rr4k Khi dịch vụ được liên kết với hệ thống (chẳng hạn như Dịch vụ trợ năng) bị treo, hệ thống sẽ không khởi động lại cho đến khi được cấp lại hoặc hệ điều hành được khởi động lại. Cố gắng thu hồi quyền và bật lại, dịch vụ sẽ bắt đầu lại. Hy vọng nó giúp. – abhinav