API 21 이후 Google은 일반적으로 에 기능을 추가했습니다. 특히 TelecomManager의 더 많은 구성원을 구현하고 InCallService을 추가로 구현했습니다. 이 마지막 하나는 비 시스템 타사 앱이 시스템 콜 앱 인 콜 화면의 기능을 제공하고 대체 할 수 있도록 허용되었습니다. 팝업 창에서 EXTRA_STATE_OFFHOOK
또는 EXTRA_STATE_RINGING
브로드 캐스트 (예 : 수신 및 발신 전화).android.telecom 및 InCallService를 사용하여 수신 전화 받기
현재이 화면에서만 루트 제한 MODIFY_PHONE_STATE
권한과 리플렉션으로 액세스 할 수없는 많은 보안 AOSP 코드를 통해 세부 정보가 포함 된 벨소리 및 활성 통화 및 관련 시스템 콜백을 완벽하게 제어 할 수 있습니다. 특히 제조사의 ROM 맛과 런처, 연락처 및 카메라에서 가장 많이 변경된 코드 조각 중 하나입니다.
이
가어떻게 당신이 실제로 제 3 자 InCallService을 개발 할 ... 모든 아주 예쁜하지만?
은 즉 : 당신이에 대한 알림 및 GSM의 인스턴스를 획득합니까 어떻게
- 한 다음 호출에 응답 않는 방법
- 를 호출 콜백의 라이프 사이클이 클래스에 무엇
- 구글은 내가 발견하지 않은이에 대한 실제 튜토리얼을 제공합니까
나는 것 아닌 sk는이 모든 것에 대해 한 번에 응답하지만, 한 가지 대답은 아마도 다른 질문과 연관되어있을 것입니다. 이것은 넓지 만 본질적으로 다음과 같을 필요가 있습니다. AOSP 코드 이외의 다른 웹을 우연히 발견 한 예는 없습니다.이 코드는 루트 권한의 가정을 기반으로하므로 써드 파티 앱 개발에 사용할 수 없게됩니다 목적.
1 번 질문에'android.intent.action.PHONE_STATE' 방송이 작동하지 않습니까? –
@SharpEdge "전화"를 통보 받았지만 어느 것을 안다면 안드로이드 .telecom.Call - https://developer.android.com/reference/android/telecom/Call.html 그런 경우에 나는 실제로 그냥 전화 # 대답 (int videoState) 얻을 2. 밖으로 정렬 – leRobot
거기 밖으로 많은 정보가있을 것 같지 않습니다 -이 질문에 의견을 도울 수 있습니다. http://stackoverflow.com/q/34861910/334402 . 확실하지 않은 경우를 대비하여이 API는 InCallUI, 즉 호출을 제어하기위한 사용자 인터페이스를 대체하는 것입니다. – Mick