마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 전화 통화 중 상태 얻어오기.

0 추천

안녕하세요 초보개발자입니다.

 

안드로이드 앱 실행중에 (서비스포함) 전화 상태를 Broadcast로 받을 수 있잖아요..

 

TelephonyManager.EXTRA_STATE_IDLE  ==> IDLE 상태

TelephonyManager.EXTRA_STATE_OFFHOOK ==> 전화 끊을 때 오는 상태.

TelephonyManager.EXTRA_STATE_RINGING ==> 전화 벨이 울릴 때 오는 상태.

 

이렇게 알고있는데요

 

저는 통화중인 상태를 알고싶습니다.

서비스에서 무언가를 재생하려 할 때 통화중 상태이면 단말기에 따라 동작이 다르더라구요

삼성단말은 통화중일 때 통화음량만 재생되는 반면에 LG단말은 앱에서 나는 소리까지 같이 들리는 현상.

 

이때문에 통화중 서비스에서 무언가를 재생할 때 통화중인걸 검사해서 통화중이라면 재생을 안하게 하려 하는데요.

 

통화중인 상태는 무엇으로 매번 검사할 수 있나요?

 

OFFHOOK에 관한 API 문서를 읽어보니

Device call state: Off-hook. At least one call exists that is dialing, active, or on hold, and no calls are ringing or waiting.

 

이렇게 나와있긴 한데..active, or on hold 라는게 통화 중임을 의미하는지

 

저는 끊을때만 나오는건줄 알았어서요.

 

통화 중 상태를 감지할 수 있는 방법 알려주시면 감사하겠습니다.. 꾸벅(_ _)

윤둥이 (4,560 포인트) 님이 2014년 1월 21일 질문

2개의 답변

0 추천
써보진 않았지만 문서대로 보면

받을 때 IDLE(대기중) - RINGING(벨울림) - OFFHOOK(통화연결 시작) - IDLE(통화종료)

걸 때 IDLE(대기중) - OFFHOOK(통화연결 시작) - IDLE(통화종료)

이렇게 상태가 변화하는 것이 맞는것 같습니다.
b22n (22,940 포인트) 님이 2014년 1월 21일 답변
0 추천
서비스에서 리시버 등록하시고..

상태는 문서 보시면 잘 나와있으니까 그때 맞춰서 중지 해 주시면 되겠네요
노예의집 (23,370 포인트) 님이 2014년 1월 21일 답변
...