2013-02-13 3 views
1

클릭하면 전화를 초기화하는 버튼이있는 Android 애플리케이션을 개발 중입니다.android : 전화가 왔을 때 백그라운드에서 전화 걸기

전화가 응답하면 자동으로 기본 전화 응용 프로그램을 백그라운드에두고 내 응용 프로그램을 다시 표시하려고합니다. 한편, 전화는 백그라운드에서 실행됩니다.

스마트 폰의 뒤로 버튼을 클릭하거나 전화가 진행되는 동안 내 응용 프로그램을 수동으로 열면 결과가 달라집니다. 그러나 이것은 버튼을 누르지 않아도 자동으로 이루어져야합니다.

통화 상태가 울리거나 꺼져 있거나 유휴 상태 일 때 뭔가를 수행하도록 전화 청취자가 있었지만 문제는 응용 프로그램에서 백그라운드로 전화 응용 프로그램을 넣는 것입니다.

순서 :

  1. 사용자는 기본 전화 응용 프로그램 (안드로이드)를 시작하는 내 응용 프로그램에서 버튼을 클릭합니다.
  2. 전화 통화가 시작됩니다 (통화 상태 : 벨소리 울림).
  3. 전화 통화가 오프 훅 (통화 상태 : 오프 훅)입니다.
  4. 자동으로 내 응용 프로그램이이를 감지하고 백그라운드에서 기본 전화 응용 프로그램을 넣고 내 응용 프로그램을 포 그라운드에 배치합니다.

어떻게 할 수 있습니까?

+0

할 수 있다고 생각하지 마십시오. 발신자가 시작되면 그 사람이 인계 받고 그 사람을 통제 할 수 없습니다. –

+0

네, 저도 그렇게 생각합니다. 그러나 어쩌면 이것을 할 수있는 방법이 있습니다. – oriolparra

답변

0

백그라운드 서비스를 만들고 BroadcastReceivers를 구현하여 호출 상태 트리거를 수신합니다.

+0

이미이 작업을 수행했으며 통화 상태를 청취 할 수 있었지만 문제는 애플리케이션을 포 그라운드로 가져갔습니다. – oriolparra

0

활동 시작을 사용하여 통화가 응답 된 후 앱을 포 그라운드에 배치 할 수 있습니다.

Intent i = getBaseContext().getPackageManager() 
         .getLaunchIntentForPackage(
           getBaseContext().getPackageName()); 
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(i); 

이제 문제는 시작 활동이 새로운 활동을 할 것입니다 (그것은 모든 이전하는 행동이 삭제됩니다 - 이러한 플래그없이 통화 화면에서 다시 반환하지 않습니다). 백그라운드에서 이미 작동중인 작업으로 실제로 되돌릴 수있는 방법을 모르겠습니다.

+0

나는 배경에서 일하는 활동으로 돌아갈 필요가있다 ... – oriolparra