2016-06-06 3 views
1

내 응용 프로그램은 들어오는 호출에 프로그래밍 방식으로 응답해야합니다. 사무실을 통해 전화를 걸 수있는 엔터프라이즈 전화 통신 응용 프로그램입니다. Android 4.4까지, Headset Hook method루트 또는 시스템 응용 프로그램없이 Lollipop/Marshmallow에서 들어오는 호출에 프로그래밍 방식으로 응답하십시오.

불행히도 5.0 및 6.0에서는 더 이상 작동하지 않는 것 같습니다. 나는 android.permission.CALL_PRIVILEGED 권한의 유무에 관계없이 KeyEvent.ACTION_DOWN 및 ACTION_UP을 실험 해 보았습니다. KeyEvent.KEYCODE_CALL에 대해 KeyEvent.KeyCODE_HEADSETHOOK을 교체해 보았습니다. 헤드셋 플러그를 트리거하는 것은 물론입니다. Nexus 6P에서는 아무런 변화가 없습니다. "입력 키 이벤트 79"를 보내는 것은 아무 것도하지 않습니다.

엔터프라이즈 텔레포니 앱이므로 다양한 라우팅되지 않은 장치에서 실행해야하므로 전화 서비스가 제공되며 android.permission.MODIFY_PHONE_STATE가 필요한 항목도 있습니다.

휴대 전화에 다른 권한이 필요없는 전화 통신 앱이 있기 때문에 가능하다고 알고 있습니다.

답변

1

나는 그것이 작동하는 응용 프로그램을 리버스 엔지니어링 할 수있었습니다. 여기 완수하는 방법은 .. 코드가 자 마린입니다하지만 난 다시 자바 형식으로 가져올 수있는 확신

하는 것으로)이 누군가가 시간을 절약 도움이 될 것입니다

Instrumentation inst = new Instrumentation(); 
inst.SendKeySync(new KeyEvent(KeyEventActions.Down, Keycode.Headsethook)); 
inst.SendKeySync(new KeyEvent(KeyEventActions.Up, Keycode.Headsethook)); 

희망. .