मैं सोच रहा था कि मेरी सेवा कैसे सक्षम है या नहीं, मैं कैसे पता लगा सकता हूं। तो मैं जांच सकता हूं कि मेरी सेवा सक्षम नहीं है, तो उपयोगकर्ता को इसे सक्षम करने के लिए कहें।पता करें कि मेरी पहुंच सेवा सक्षम है
धन्यवाद
मैं सोच रहा था कि मेरी सेवा कैसे सक्षम है या नहीं, मैं कैसे पता लगा सकता हूं। तो मैं जांच सकता हूं कि मेरी सेवा सक्षम नहीं है, तो उपयोगकर्ता को इसे सक्षम करने के लिए कहें।पता करें कि मेरी पहुंच सेवा सक्षम है
धन्यवाद
नीचे अगर आपके उपयोग सेवा सक्षम है या नहीं की जाँच करने के विधि है।
नोट: अपनी सेवा के साथ YOURAccessibilityService
का मूल्य बदलें।
// To check if service is enabled
private boolean isAccessibilitySettingsOn(Context mContext) {
int accessibilityEnabled = 0;
final String service = getPackageName() + "/" + YOURAccessibilityService.class.getCanonicalName();
try {
accessibilityEnabled = Settings.Secure.getInt(
mContext.getApplicationContext().getContentResolver(),
android.provider.Settings.Secure.ACCESSIBILITY_ENABLED);
Log.v(TAG, "accessibilityEnabled = " + accessibilityEnabled);
} catch (Settings.SettingNotFoundException e) {
Log.e(TAG, "Error finding setting, default accessibility to not found: "
+ e.getMessage());
}
TextUtils.SimpleStringSplitter mStringColonSplitter = new TextUtils.SimpleStringSplitter(':');
if (accessibilityEnabled == 1) {
Log.v(TAG, "***ACCESSIBILITY IS ENABLED*** -----------------");
String settingValue = Settings.Secure.getString(
mContext.getApplicationContext().getContentResolver(),
Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES);
if (settingValue != null) {
mStringColonSplitter.setString(settingValue);
while (mStringColonSplitter.hasNext()) {
String accessibilityService = mStringColonSplitter.next();
Log.v(TAG, "-------------- > accessibilityService :: " + accessibilityService + " " + service);
if (accessibilityService.equalsIgnoreCase(service)) {
Log.v(TAG, "We've found the correct setting - accessibility is switched on!");
return true;
}
}
}
} else {
Log.v(TAG, "***ACCESSIBILITY IS DISABLED***");
}
return false;
}
और इस विधि कॉल करने के:
if (!isAccessibilitySettingsOn(getApplicationContext())) {
startActivity(new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS));
}
यह जाँच करें और पहुंच-योग्यता सेटिंग का शुभारंभ यदि सक्षम नहीं होंगे।
एक आकर्षण की तरह काम करना, धन्यवाद –
@Pankaj क्या होगा यदि गेटिंट विधि सेटिंग्स को फेंक रहा है अपवाद नहीं मिला है। हम उस मामले में क्या कर सकते हैं। मैंने इसे किटकैट एमुलेटर पर आज़माया और यह इस सेटिंग को अपवाद नहीं मिला लेकिन सेटिंग वहां है। क्या कोई अन्य तरीका है जिसे हम इस मामले में उपयोग कर सकते हैं। – dirtydexter
धन्यवाद, अपेक्षित के रूप में काम कर रहा है। लाइन फाइनल स्ट्रिंग सेवा = mContext.getPackageName() + "/" + mContext.getPackageName() + ".YourAccessibilityService" पर getPackageName() का उपयोग करना बेहतर है; – user207064
संभावित डुप्लिकेट [एंड्रॉइड: आप कैसे जांचते हैं कि कोई विशेष एक्सेसिबिलिटी सेवा सक्षम है] (http://stackoverflow.com/questions/5081145/android-how-do-you-check-if-a-particular-accessibilityservice -इस-सक्षम) – Sam