2011-11-22 5 views
4

앱을 프로그래밍 중입니다. 자동으로 전화를받습니다. 문제는 이미 통화 중이며 누군가 울리고있는 경우 응답하지 않아야한다는 것입니다. 그 방법이 있습니까?이미 전화를 걸고 두 번째 발신자가 전화를 거는 경우 PhoneStateListener.CALL_STATE_RINGING을 실행하지 않는 방법

문서에 따르면 TelephonyManager으로 상태를 확인하면 CALL_STATE_RINGING이 아닌 CALL_STATE_OFFTHEHOOK이됩니다.

변화하는 전화 상태에서 true로 설정된 변수를 추가해야 통화가 진행 중이거나 더 나은 해결책이 있다는 것을 알고 있습니까?

감사합니다.

/편집 : 나는 허가없이 전화를받습니다. Modify_Phone_State, 그래서 그것은 이미 진행중인 전화가 있는지 알아내는 것입니다.

답변

1

자에서

대한 추가 정보를 원하시면, 분명히이 알아낼 수있는 방법이 없기 때문에, 나는 즉시 SharedPreference에 부울을 저장하도록 국가가 OFFTHEHOOK (True)로갑니다.

상태가 IDLE으로 변경되면 부울을 false로 설정합니다. 즉 누군가가 이미 호출하는 동안 RINGING이 실행되면 변수가 true라는 것을 알게되고 다음 작업을 무시합니다. 전화에 응답하는 방법에 대한 자세한 정보를 원하는 사람들을 위해

은, 사실 나는 Modify_Phone_State 권한을 사용하지만,의 허가없이 전화에 응답 블루투스 헤드셋 kepress을 모방하지 오전 AutoAnswer Project

1

질문이 안드로이드 표준 트랙에서 벗어나기 때문에 통화 상태를 추적하는 것이 가장 좋습니다. 때문에

귀하의 질문에 대한 공식적인 답변이 없습니다 : 타사 응용 프로그램 공급자가 전화에 대답하기위한 공식적인 방법이 없습니다 안드로이드 API에 의해

때문에
1 : ' 문서화되지 않은 API를 사용합니다.
2 : 요청 MODIFY_PHONE_STATE 권한이 뿌리에서만 사용할 수 있습니다/시스템은

2.3부터 응용 프로그램을 서명 그래서 (코드 구축) 귀하의 질문에 존재 대답 작업 효율, 그것은 공식적으로 모든 제조업체/모델 작동하지 않을 경우 장치. How to grant MODIFY_PHONE_STATE permission for apps ran on Gingerbread

+0

를 보라 android manifest ;-) – Force

+1

좋은 트릭! 내 대답은 전화를 끊거나 전화를 걸 때 이런 종류의 방법을 기대하지 않았다. –

관련 문제