我正在使用 AccessibilityService 来监控通知。我关注this和this。最后,它工作,我了解新的通知。
但是,要连接 AccessibilityService ,我需要让用户从 ACCESSIBILITY_SETTINGS 启用它,我这样做:
Intent intent = new Intent(android.provider.Settings.ACTION_ACCESSIBILITY_SETTINGS);
startActivityForResult(intent, 0);
但是,问题是我想检查用户是否启用了它(AccessibilityService)。另外,如果用户已启用它,我不会再次要求用户启用它。那么,有可能这样做吗?
答案 0 :(得分:1)
您可以通过检查安全设置来测试用户是否已启用辅助功能服务。 Settings.Secure.getString()
会为您提供:
个已启用服务的单独列表,您可以检查自己的服务是否存在。像这样:
ComponentName compName = new ComponentName(context, MyAccessibilityService.class);
String flatName = compName.flattenToString();
String enabledList = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES);
boolean isEnabled = enabledList != null && enabledList.contains(flatName);