2009-10-07 7 views
6

내 앱의 일정 부분이 휴대 전화 사용자에게 강조 표시하는 것이 좋습니다.사용자가 전화를하는 동안 앱을 사용하고 있는지 확인하는 방법이 있습니까?

우리가 전화를했는지 확인하라는 전화가 왔습니까? 불행히도 "call"은 명백한 이유로 API 문서에서 확인하는 끔찍한 말입니다.

+0

다음은 시나리오입니다. Bob이 Jill에게 전화를받습니다. 통화가 발생할 때 Bob이 내 응용 프로그램을 사용하고 있지 않습니다. Jill은 내 앱에 저장된 bob의 일부 정보를 묻습니다. Bob은 전화를하는 동안 홈 버튼을 누르고 내 앱을 실행합니다. 이 시점에서 Bob이 전화로 이야기하고 있는지 또는 Bob이 전화가 아닌 동안 앱을 실행하고 있는지 감지하고 싶습니다. 앱을 실행하는 동안 전화가 오지 않아도됩니다. – Michael

+0

좋은 질문입니다. 나도 알고 싶다. – Jordan

답변

2

CoreTelephony Framework에서 알 수 있습니다.

CTCallCenter currentCalls 메서드는 현재 활성화 된 셀룰러 호출 집합을 반환합니다.

0

iPhone이 전화를 받으면 응용 프로그램이 종료됩니다. 당신은 정상적으로이 이벤트를 처리하는 콜백을 등록 할 수 있습니다 참조 :

http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIApplicationDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intfm/UIApplicationDelegate/applicationWillTerminate : 통화가 완료

후, 응용 프로그램이 다시 시작을합니다. 통화 중에 당신의 상태를 유지하기 위해 표시

응용 프로그램은 좋은 책이있다 :


Arggh을! 방금 실제 질문을 읽었습니다.

휴대 전화 응용 프로그램에 액세스하기위한 API를 찾을 수 없으며 알 수 없습니다. 내 유일한 조언은 전화가 다른 응용 프로그램과 같은 것입니다 - 그리고 그것은 모든 응용 프로그램이 제공하는 http 터널을 통해 정보를 게시 할 수 있습니다.

사용자가 동일한 결과를 얻기 위해 누를 수있는 "전화를 받았다"버튼이있을 수 있을지 궁금합니다.

2

전화가 왔을 때 응용 프로그램이 종료되지 않으면 비활성 상태로 전환됩니다. 같은 아이폰이 잠겨있을 때와 같이

- (void)applicationWillResignActive:(UIApplication *)application 

이 방법은 다른 경우라고하며이 발생 수신 전화 있다면 당신이 결정하는 방법이 없습니다 다음 방법은 UIApplicationDelegate에 호출해야 그것.

5

[[UIScreen mainScreen] bounds][[UIScreen mainScreen] applicationFrame] 사이의 크기 차이를 살펴보십시오. diff가 20 픽셀이고 상태 표시 줄을 숨기지 않으면 사용자가 통화하지 않은 것일 수 있습니다. 차이가 40 픽셀 인 경우 통화 중에 나타나는 녹색 초록색 상태 표시 줄이 정상 상태 표시 줄의 약 두 배 정도 크기 때문에 통화 중일 수 있습니다.

나는 전에 이것을 한 적이 없으므로 YMMV. 행운을 빌어 요 그것이 작동하는지 알려주세요!

+3

나는 이것이 답이라고 생각했지만 tethering은 똑같은 일을한다 ... : O ( – Michael

관련 문제