क्योंकि एक्सेसिबिलिटी सेवाएं ऑन-स्क्रीन सामग्री का पता लगाने और बातचीत करने में सक्षम हैं, इसलिए उपयोगकर्ता को सेटिंग> एक्सेसिबिलिटी में स्पष्ट रूप से सेवाएं सक्षम करनी होंगी। एक बार सेवा सक्षम होने के बाद, सिस्टम इसे स्वचालित रूप से शुरू कर देगा और इसे एक्सेसिबिलिटी एपीआई से बांध देगा।
वाकई आपके ऐप्स मेनिफ़ेस्ट में आपकी सेवा की घोषणा करें:
<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 android:name="android.accessibilityservice"
android:resource="@xml/accessibilityservice" />
एक्सएमएल config है कि आप इस मामले में (संदर्भित कर रहे हैं, 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
पर उपयोग कर सकते हैं नहीं है
आप वास्तव में बहुत सारे अपवर्तनीय हैं। क्योंकि दस्तावेज़ भी http://developer.android.com/guide/topics/ui/accessibility/services.html पर गलत है। आपने एक्सेसिबिलिटी सेवा – gaurav414u
@alanv बनाने का सही तरीका दिखाया है "एक बार सेवा सक्षम होने के बाद, सिस्टम स्वचालित रूप से इसे शुरू कर देगा और इसे एक्सेसिबिलिटी एपीआई से बांध देगा।" मेरे पास सवाल है, मेरी सुलभता सेवा एक बार काम करने में सक्षम है। बिट जब यह दुर्घटनाग्रस्त हो जाता है तो परिणाम ट्यू सेटिंग में सक्षम होते हैं लेकिन इसके परिणामस्वरूप निष्पादन सेवा नहीं होती है। क्रैश के बाद सिस्टम मेरी सेवा को पुनरारंभ क्यों नहीं करता है लेकिन यह अभी भी परिणाम सक्षम है? – Hoper
@ v1sc3rr4k एक बार सिस्टम-लिंक्ड सेवा (जैसे एक्सेसिबिलिटी सर्विस) क्रैश हो जाती है, तब तक सिस्टम द्वारा पुनरारंभ नहीं किया जाता है जब तक अनुमति को रीसेट नहीं किया जाता है या ओएस रीबूट किया जाता है। अनुमति को रद्द करने और इसे फिर से सक्षम करने का प्रयास करें, सेवा फिर से शुरू हो जाएगी। आशा करता हूँ की ये काम करेगा। – abhinav