下面列出了android.view.accessibility.AccessibilityManager#getEnabledAccessibilityServiceList ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public static boolean enabledServiceCanFocusAndRetrieveWindowContent(
AccessibilityManager manager) {
List<AccessibilityServiceInfo> enabledServices =
manager.getEnabledAccessibilityServiceList(AccessibilityServiceInfo.FEEDBACK_ALL_MASK);
if (enabledServices == null) {
return false;
}
for (AccessibilityServiceInfo serviceInfo : enabledServices) {
int eventTypes = serviceInfo.eventTypes;
if ((eventTypes & AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED)
!= AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED) {
continue;
}
int capabilities = AccessibilityServiceInfoCompat.getCapabilities(serviceInfo);
if ((capabilities & AccessibilityServiceInfo.CAPABILITY_CAN_RETRIEVE_WINDOW_CONTENT)
== AccessibilityServiceInfo.CAPABILITY_CAN_RETRIEVE_WINDOW_CONTENT) {
return true;
}
}
return false;
}
private void updateServiceStatus() {
boolean serviceEnabled = false;
AccessibilityManager accessibilityManager =
(AccessibilityManager) baseContext.getSystemService(Context.ACCESSIBILITY_SERVICE);
List<AccessibilityServiceInfo> accessibilityServices =
accessibilityManager.getEnabledAccessibilityServiceList(AccessibilityServiceInfo.FEEDBACK_GENERIC);
for (AccessibilityServiceInfo info : accessibilityServices) {
if (info.getId().equals(baseContext.getPackageName() + "/.services.QQService")) {
serviceEnabled = true;
break;
}
}
if (!serviceEnabled) {
btn.setText(R.string.service_open);
} else {
btn.setText(R.string.service_off);
}
}
private void updateServiceStatus() {
boolean serviceEnabled = false;
AccessibilityManager accessibilityManager =
(AccessibilityManager) baseContext.getSystemService(Context.ACCESSIBILITY_SERVICE);
List<AccessibilityServiceInfo> accessibilityServices =
accessibilityManager.getEnabledAccessibilityServiceList(AccessibilityServiceInfo.FEEDBACK_GENERIC);
for (AccessibilityServiceInfo info : accessibilityServices) {
if (info.getId().equals(baseContext.getPackageName() + "/.services.HongbaoService")) {
serviceEnabled = true;
break;
}
}
if (!serviceEnabled) {
btn.setText(R.string.service_open);
} else {
btn.setText(R.string.service_off);
}
}
private void updateServiceStatus() {
boolean serviceEnabled = false;
AccessibilityManager accessibilityManager =
(AccessibilityManager) baseContext.getSystemService(Context.ACCESSIBILITY_SERVICE);
List<AccessibilityServiceInfo> accessibilityServices =
accessibilityManager.getEnabledAccessibilityServiceList(AccessibilityServiceInfo.FEEDBACK_GENERIC);
for (AccessibilityServiceInfo info : accessibilityServices) {
if (info.getId().equals(baseContext.getPackageName() + "/.services.AlipayService")) {
serviceEnabled = true;
break;
}
}
if (!serviceEnabled) {
btn.setText(R.string.service_open);
} else {
btn.setText(R.string.service_off);
}
}
static boolean isAccessibilityServiceEnabled(Context context) {
AccessibilityManager manager = (AccessibilityManager) context.getSystemService(Context.ACCESSIBILITY_SERVICE);
if (manager != null) {
List<AccessibilityServiceInfo> runningServices =
manager.getEnabledAccessibilityServiceList(AccessibilityEvent.TYPES_ALL_MASK);
for (AccessibilityServiceInfo service : runningServices) {
if (service != null) {
//PPApplication.logE("PPPExtenderBroadcastReceiver.isAccessibilityServiceEnabled", "serviceId=" + service.getId());
if (PPApplication.EXTENDER_ACCESSIBILITY_SERVICE_ID.equals(service.getId())) {
//PPApplication.logE("PPPExtenderBroadcastReceiver.isAccessibilityServiceEnabled", "true");
return true;
}
}
}
//PPApplication.logE("PPPExtenderBroadcastReceiver.isAccessibilityServiceEnabled", "false");
return false;
}
//PPApplication.logE("PPPExtenderBroadcastReceiver.isAccessibilityServiceEnabled", "false");
return false;
}
/**
* 检查当前辅助服务是否已启用
*
* @param context context
* @param serviceId serviceId
* @return 是否已启用
*/
public static boolean checkAccessibilityEnabled(Context context, String serviceId) {
AccessibilityManager accessibilityManager = getAccessibilityManager(context);
List<AccessibilityServiceInfo> accessibilityServiceInfoList =
accessibilityManager.getEnabledAccessibilityServiceList(AccessibilityServiceInfo.FEEDBACK_ALL_MASK);
for (AccessibilityServiceInfo info : accessibilityServiceInfoList) {
if (info.getId().equals(serviceId)) {
return true;
}
}
return false;
}
/**
* 判断辅助服务是否正在运行
* */
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
public static boolean isServiceRunning(WechatService service) {
if(service == null) {
return false;
}
AccessibilityManager accessibilityManager = (AccessibilityManager) service.getSystemService(Context.ACCESSIBILITY_SERVICE);
AccessibilityServiceInfo info = service.getServiceInfo();
if(info == null) {
return false;
}
List<AccessibilityServiceInfo> list = accessibilityManager.getEnabledAccessibilityServiceList(AccessibilityServiceInfo.FEEDBACK_GENERIC);
Iterator<AccessibilityServiceInfo> iterator = list.iterator();
boolean isConnect = false;
while (iterator.hasNext()) {
AccessibilityServiceInfo i = iterator.next();
if(i.getId().equals(info.getId())) {
isConnect = true;
break;
}
}
if(!isConnect) {
return false;
}
return true;
}
public boolean isGroupReplyServiceEnabled(Context context) {
AccessibilityManager accessibilityManager = (AccessibilityManager) context.getSystemService(Context.ACCESSIBILITY_SERVICE);
List<AccessibilityServiceInfo> accessibilityServices =
accessibilityManager.getEnabledAccessibilityServiceList(AccessibilityServiceInfo.FEEDBACK_GENERIC);
for (AccessibilityServiceInfo info : accessibilityServices) {
// if (info.getId().equals(getPackageName() + "/.WeChatGroupSendService")) {
if (info.getId().equals(context.getPackageName() + "/.access.WeChatAccessService")) {
return true;
}
}
return false;
}
public static boolean isAccessibilityEnabled(Context context, String id) {
AccessibilityManager am = (AccessibilityManager) context
.getSystemService(Context.ACCESSIBILITY_SERVICE);
List<AccessibilityServiceInfo> runningServices = am
.getEnabledAccessibilityServiceList(AccessibilityEvent.TYPES_ALL_MASK);
for (AccessibilityServiceInfo service : runningServices) {
if (service.getId().contains(id)) {
return true;
}
}
return false;
}
/**
* 判断当前服务是否正在运行
* */
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
public static boolean isRunning() {
if(service == null) {
return false;
}
AccessibilityManager accessibilityManager = (AccessibilityManager) service.getSystemService(Context.ACCESSIBILITY_SERVICE);
AccessibilityServiceInfo info = service.getServiceInfo();
if(info == null) {
return false;
}
List<AccessibilityServiceInfo> list = accessibilityManager.getEnabledAccessibilityServiceList(AccessibilityServiceInfo.FEEDBACK_GENERIC);
Iterator<AccessibilityServiceInfo> iterator = list.iterator();
boolean isConnect = false;
while (iterator.hasNext()) {
AccessibilityServiceInfo i = iterator.next();
if(i.getId().equals(info.getId())) {
isConnect = true;
break;
}
}
if(!isConnect) {
return false;
}
return true;
}
/**
* Checks to see if an old version of TalkBack is running that Chrome doesn't support,
* and if so, shows an alert dialog prompting the user to update the app.
* @param context A {@link Context} instance.
* @return True if the dialog was shown.
*/
public static boolean showWarningIfOldTalkbackRunning(Context context) {
AccessibilityManager manager = (AccessibilityManager)
context.getSystemService(Context.ACCESSIBILITY_SERVICE);
if (manager == null) return false;
boolean isTalkbackRunning = false;
try {
List<AccessibilityServiceInfo> services =
manager.getEnabledAccessibilityServiceList(
AccessibilityServiceInfo.FEEDBACK_SPOKEN);
for (AccessibilityServiceInfo service : services) {
if (service.getId().contains(TALKBACK_PACKAGE_NAME)) isTalkbackRunning = true;
}
} catch (NullPointerException e) {
// getEnabledAccessibilityServiceList() can throw an NPE due to a bad
// AccessibilityService.
}
if (!isTalkbackRunning) return false;
if (PackageUtils.getPackageVersion(context, TALKBACK_PACKAGE_NAME) < MIN_TALKBACK_VERSION
&& !sOldTalkBackVersionAlertShown) {
showOldTalkbackVersionAlertOnce(context);
return true;
}
return false;
}
public static boolean isAccessibilityEnabled(Context context, String id) {
AccessibilityManager am = (AccessibilityManager) context
.getSystemService(Context.ACCESSIBILITY_SERVICE);
List < AccessibilityServiceInfo > runningServices = am
.getEnabledAccessibilityServiceList(AccessibilityEvent.TYPES_ALL_MASK);
for (AccessibilityServiceInfo service: runningServices) {
if (id != null && id.equals(service.getId())) {
return true;
}
}
return false;
}
public static boolean isAccessibilityEnabled(Context context, String id) {
AccessibilityManager am = (AccessibilityManager) context
.getSystemService(Context.ACCESSIBILITY_SERVICE);
List<AccessibilityServiceInfo> runningServices = am
.getEnabledAccessibilityServiceList(AccessibilityEvent.TYPES_ALL_MASK);
for (AccessibilityServiceInfo service : runningServices) {
if (id != null && id.equals(service.getId())) {
return true;
}
}
return false;
}
public static boolean isAccessibilityEnabled(Context context, String id) {
if (id == null) return false;
AccessibilityManager am = (AccessibilityManager) context
.getSystemService(Context.ACCESSIBILITY_SERVICE);
List < AccessibilityServiceInfo > runningServices = am
.getEnabledAccessibilityServiceList(AccessibilityEvent.TYPES_ALL_MASK);
for (AccessibilityServiceInfo service: runningServices) {
if (id.equals(service.getId()))
return true;
}
return false;
}
private boolean isAccessibleEnabled() {
AccessibilityManager manager = (AccessibilityManager) getSystemService(Context.ACCESSIBILITY_SERVICE);
List<AccessibilityServiceInfo> runningServices = manager.getEnabledAccessibilityServiceList(AccessibilityEvent.TYPES_ALL_MASK);
for (AccessibilityServiceInfo info : runningServices) {
if (info.getId().equals(getPackageName() + "/.MonitorService")) {
return true;
}
}
return false;
}
/**
* Checks to see if an old version of TalkBack is running that Chrome doesn't support,
* and if so, shows an alert dialog prompting the user to update the app.
* @param context A {@link Context} instance.
* @return True if the dialog was shown.
*/
public static boolean showWarningIfOldTalkbackRunning(Context context) {
AccessibilityManager manager = (AccessibilityManager)
context.getSystemService(Context.ACCESSIBILITY_SERVICE);
if (manager == null) return false;
boolean isTalkbackRunning = false;
try {
List<AccessibilityServiceInfo> services =
manager.getEnabledAccessibilityServiceList(
AccessibilityServiceInfo.FEEDBACK_SPOKEN);
for (AccessibilityServiceInfo service : services) {
if (service.getId().contains(TALKBACK_PACKAGE_NAME)) isTalkbackRunning = true;
}
} catch (NullPointerException e) {
// getEnabledAccessibilityServiceList() can throw an NPE due to a bad
// AccessibilityService.
}
if (!isTalkbackRunning) return false;
if (PackageUtils.getPackageVersion(context, TALKBACK_PACKAGE_NAME) < MIN_TALKBACK_VERSION
&& !sOldTalkBackVersionAlertShown) {
showOldTalkbackVersionAlertOnce(context);
return true;
}
return false;
}
public static List<AccessibilityServiceInfo> getEnabledAccessibilityServiceList(
AccessibilityManager manager,int feedbackTypeFlags) {
return manager.getEnabledAccessibilityServiceList(feedbackTypeFlags);
}
public static List<AccessibilityServiceInfo> getEnabledAccessibilityServiceList(
AccessibilityManager manager,int feedbackTypeFlags) {
return manager.getEnabledAccessibilityServiceList(feedbackTypeFlags);
}
public static List<AccessibilityServiceInfo> getEnabledAccessibilityServiceList(
AccessibilityManager manager,int feedbackTypeFlags) {
return manager.getEnabledAccessibilityServiceList(feedbackTypeFlags);
}
public static List<AccessibilityServiceInfo> getEnabledAccessibilityServiceList(
AccessibilityManager manager,int feedbackTypeFlags) {
return manager.getEnabledAccessibilityServiceList(feedbackTypeFlags);
}