2012-05-17 3 views
7

들어오는 전화가 왔을 때 알림을받을 iPhone 앱을 작성 중입니다. 앱은 백그라운드 작업을 수행합니다. 전화 세션이 진행되는 동안 일부 데이터를 검색하는 서버로 이동 한 다음 사용자에게 알립니다.전화가 걸려 올 때 화면을 업데이트하는 iPhone 배경 앱

검색 한 후 Private Telephony Headers/Framework을 사용하여 실제로 내 앱에서 누가 전화를 걸고 있는지 알 수있었습니다. 그러나 서버에서 검색 한 정보로 다이얼러 화면을 업데이트 할 수 없습니다. 또한 전화가 왔을 때 응용 프로그램이 실행 중이라는 사실을 알았습니다. 야크!!

나는 그러나 내가이 일을 찾고,이 애플 스토어에서 승인하지 않은 것이라는 점을 알고있다 : 나는 백그라운드에서이 응용 프로그램을 넣어 어떻게

  1. .
  2. 전화가 진행되는 동안 어떻게 정보를 보여줄 수 있습니까? 로컬 알림은 괜찮지 만 즉시 표시해야합니다.

탈옥을하더라도, 어떻게해야 할 지 알고 싶습니다. 이 응용 프로그램은 법 집행관 - 개념 증명을위한 것입니다.

+1

이런 종류의 앱을 적절한 방법으로 만들고 싶다면, 가장 좋은 해결책은 무거운 짐을 싣고 스프링 보드에 정보 주입 용 코드 인젝션을하는 것이 가장 좋은 해결책이라고 생각하기 때문에 탈옥을해야합니다. 그런 일을하는 방법에 대한 실제 튜토리얼은 없지만, 탈옥 장면에있는 개발자는 이러한 문제에 관한 경험이 있으며 때로는 프리랜서 작업을 수행합니다. – YllierDev

+0

저는 기본적으로 스프링 보드에 코드 삽입을 찾고있어 법 집행 공무원에 대한 민감한 정보가 즉시 표시되고 통화가 진행되는 동안 정보가 더 잘 전달됩니다. 애플이 사용자 경험이나 프라이버시/보안에 대한 그러한 변화를 막고 있다고 말하면 나는 그것들을 더 잘 설계하고 두려워하지 않는다고 말할 것이다. 그리고 이러한 변명 뒤에 숨어있을 뿐이다. –

+0

직접 시도하고 싶다면 MobileSubstrate (http://iphonedevwiki.net/index.php/MobileSubstrate)는 jailbroken 장치에 코드를 삽입하는 데 사용하는 도구입니다. 저는 애플이 광범위한 시스템을 개발자들에게 개방시키지 않는다는 것을 이해합니다. 경험이 부족한 개발자가 "조정"을하면 심각한 혼란을 야기 할 수 있으며 iPhone은 유지 관리가 적은 제품입니다. 그러나 시스템을 개선하고 개선하는 데 방해가되지는 않았습니다.) – YllierDev

답변

3

YllierDev가 말했듯이 정보를 표시하기 위해 MobileSubstrate를 조정할 수 있습니다. 그러나, 뭔가 어쩌면 덜 어려운 새로운 누군가를 위해, 당신이 시도 할 수 있다는 :

  1. 첫째, 발사 데몬을 만들 수 있습니다. 이것은 백그라운드에서 실행할 수 있으며 원하는대로 할 수 있습니다. 휴대 전화가 부팅되면 시작되므로 사용자가 먼저 앱을 실행하지 않아도되고 배경에 넣을 필요가 없습니다. 찾았습니다 this to be a good example of building a LaunchDaemon

  2. Core Telephony 프레임 워크의 문서화되지 않은 기능을 사용하여 새 통화에 대한 알림을받는 방법을 이미 알고있는 것 같습니다. 이것은 당신의 데몬의 책임이 될 것입니다. 완전성을 위해 Daemon이 Darwin 알림을 사용하여 호출을 수신하는 방법에 대한 설명은 see this answer 또는 this other answer입니다.

  3. 호출이 가로채는 경우 데몬이 서버에 접속할 수 있습니다.

  4. 그런 다음 something like this있는 간단한 팝업을 만들 수 있습니다

다음
CFOptionFlags responseFlags = 0; 
CFUserNotificationDisplayAlert(20.0, 3, NULL, NULL, NULL, 
    CFSTR("Hello"), CFSTR("Hello World"), CFSTR("OK"), 
    NULL, NULL, &responseFlags); 

당신은 아마 어쩌면 include this headerCoreFoundation에서 프레임 워크에 연결해야하고 있습니다 일부 Apple docs on CFUserNotifications

입니다 프로젝트에서 CFUserNotificationDisplayAlert()을 사용할 수 있습니다.

하지만 동적 통화 데이터가 팝업으로 표시됩니다.

관련 문제