简体   繁体   English

是否可以停止或杀死无障碍服务?

[英]Can accessibility service be stopped or killed?

I have written an accessibility service and I want the service to be stopped/killed once it receives an accessibility event (ie in method onAccessibilityEvent ). 我已经编写了一个可访问性服务,我希望该服务一旦收到可访问性事件(即,在方法onAccessibilityEvent )就被停止/终止。 Can this be done? 能做到吗? I have tried to kill using kill process as below but it is not working. 我已尝试使用如下所示的kill进程来杀死它,但是它不起作用。

unbindService(mSvcConn);  
android.os.Process.killProcess(android.os.Process.myPid());

I have given the below permission in AndroidManifest.xml 我在AndroidManifest.xml中授予了以下权限

<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />

I know that accessibility service cannot be started programmatically but can't it be stopped/killed either? 我知道无障碍服务无法以编程方式启动,但是也不能停止/杀死它吗?

An accessibility service can't remove itself from the list of enabled services or kill its own process without being automatically restarted, but you can call AccessibilityService.setServiceInfo(new AccessibilityServiceInfo()) to effectively turn off your service. 可访问性服务无法将其自身从已启用服务的列表中删除,也无法杀死它自己的进程而不会自动重启,但是您可以调用AccessibilityService.setServiceInfo(new AccessibilityServiceInfo())来有效地关闭服务。

Calling AccessibilityManager.isEnabled() will still return true, but your service won't receive events. 调用AccessibilityManager.isEnabled()仍将返回true,但是您的服务将不会接收事件。

在Android 7.0(API 24)中,您可以在AccessibilityService上调用disableSelf()以禁用该服务,该服务也将停止该服务。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM