2014-10-10 2 views
1

접근성 서비스를 작성했으며 액세스 가능성 이벤트 (즉, onAccessibilityEvent 메소드)를 수신하면 서비스를 중지/종료하려고합니다. 이 작업을 수행 할 수 있습니까? 나는 아래와 같이 kill 프로세스를 사용하여 죽이려고 시도했으나 작동하지 않습니다.내게 필요한 옵션 지원 서비스를 중지하거나 종료 할 수 있습니까?

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

나는

AndroidManifest.xml에

에서 아래의 허가 내가 접근성 서비스를 프로그래밍 방식으로 시작되지 않을 수 있지만이 중 사망/중지 할 수 없습니다 알고 준?

+0

<사용 권한 android : name = "android.permission.KILL_BACKGROUND_PROCESSES"/> – pradeep

답변

4

내게 필요한 옵션 서비스는 자동으로 다시 시작되지 않고 활성화 된 서비스 목록에서 자신을 제거하거나 자체 프로세스를 종료 할 수 없지만 AccessibilityService.setServiceInfo (new AccessibilityServiceInfo())를 호출하여 효과적으로 서비스를 해제 할 수 있습니다.

AccessibilityManager.isEnabled() 호출은 여전히 ​​true를 반환하지만 서비스는 이벤트를 수신하지 않습니다.

+0

답장에 대해 Alanv에게 감사드립니다. 귀하의 회신 내 질문에 대답하는 것하지만 내 유일한 우려는 서비스가 어떤 작업을하지 않을 때 실행되고 있다는 것입니다. 또한 전화가 다시 시작되면 접근성 서비스가 다시 시작되는 것 같습니다. 전화가 다시 시작될 때이 서비스를 다시 시작할 수 없도록하는 방법에 대한 아이디어가 있습니까? – pradeep

+1

서비스를 사용하지 않도록 사용자에게 요청할 수 있습니다. 실제로 서비스를 완전히 사용 중지 (예 : 구성 요소 사용 중지)하는 몇 가지 해킹 방법이 있지만 문제가 발생하는 것보다 많은 문제가 발생할 수 있습니다. – alanv

0

Android 7.0 (API 24)에서는 AccessibilityService에서 disableSelf()을 호출하여 서비스를 사용 중지 할 수 있으며 서비스도 중지 할 수 있습니다.

관련 문제