Can accessibility service be stopped or killed?

拜拜、爱过 提交于 2019-12-02 12:16:26

问题


I have written an accessibility service and I want the service to be stopped/killed once it receives an accessibility event (i.e. in method onAccessibilityEvent). Can this be done? I have tried to kill using kill process as below but it is not working.

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

I have given the below permission in 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?


回答1:


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.

Calling AccessibilityManager.isEnabled() will still return true, but your service won't receive events.




回答2:


In Android 7.0 (API 24), you can call disableSelf() on the AccessibilityService to disable the service, which also stops it.



来源:https://stackoverflow.com/questions/26301651/can-accessibility-service-be-stopped-or-killed

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!