1、判断无障碍是否开启
/**
* 判断无障碍服务是否开启
*
* @param context
* @return
*/
public static boolean isStartAccessibilityServiceEnable(Context context) {
AccessibilityManager accessibilityManager =
(AccessibilityManager) context.getSystemService(Context.ACCESSIBILITY_SERVICE);
assert accessibilityManager != null;
List<AccessibilityServiceInfo> accessibilityServices =
accessibilityManager.getEnabledAccessibilityServiceList(
AccessibilityServiceInfo.FEEDBACK_ALL_MASK);
for (AccessibilityServiceInfo info : accessibilityServices) {
if (info.getId().contains(context.getPackageName())) {
return true;
}
}
return false;
}
2、代码中开启无障碍
/**
* 初始化无障碍
*/
private void initAccessibilityService() {
RootCmd.execCmd("pm grant camera.app.com.backward android.permission.READ_PHONE_STATE");
boolean b = RootCmd.execCmd("pm grant camera.app.com.backward android.permission.WRITE_SECURE_SETTINGS");
if (b) {
Log.d("system", "WRITE_SECURE_SETTINGS SUCCESS!");
// 自动开启无障碍服务
if (!ServiceUtils.isStartAccessibilityServiceEnable(this)) {
Settings.Secure.putString(getContentResolver(), Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES,
getPackageName() + "/" + getPackageName() + ".service.AutoClickService");
Settings.Secure.putInt(getContentResolver(), Settings.Secure.ACCESSIBILITY_ENABLED, 1);
Log.d("system", "SETTING ACCESSIBILITY SUCCESS!");
}
}
}