2012-01-09 3 views
0

임 나가는 모든 통화 및 그 전화를 차단 한 후, 또 다른 새로운 전화가 미리 정의 된 번호로 시작 블록 응용 프로그램을 ... 개발안드로이드 브로드 캐스트 리시버 문제가

내 문제는, 즉 내가 사용하여 전화를 차단하는 경우 broadcastreceiver, 프로그래밍 방식으로 시작하는 두 번째 호출도 차단되고 있습니다 ...

첫 번째 호출을 차단하거나 다른 방법이나 기술을 차단 한 후 브로드 캐스트를 등록 해제하는 방법은 무엇입니까 ???

이 내가 내 응용 프로그램 구현 내 브로드 캐스트 리시버 ... 전화를 시작하고 통화 표시 그것의 완료 후에 때 당신은 저장 체크 사용할 수 있습니다

public class CallListenerActivity extends BroadcastReceiver { 

Uri uri; 

    @Override 
    public void onReceive(Context context, Intent intent) { 
      Bundle bundle = intent.getExtras(); 

      if(bundle == null) 
       return; 


      String phonenumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER); 

      Log.i("@@@OutgoingCallReceiver",phonenumber); 
      Log.i("@@@OutgoingCallReceiver",bundle.toString()); 

      String info = "Detect Calls sample application\nOutgoing number: " + phonenumber; 

      Toast.makeText(context, info, Toast.LENGTH_LONG).show(); 



      String phoneNumber = "5556"; 
      Uri uri = Uri.fromParts("tel", phoneNumber, null); 

      Intent callIntent = new Intent(Intent.ACTION_CALL, uri); 
      callIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      context.startActivity(callIntent); 




    } 
+0

나는 비슷한 것을하고있다 !!! http://stackoverflow.com/questions/14571564/android-pendingintent-extras-not-received-by-broadcastreceiver/14612215#14612215 – toobsco42

답변

1

원래 (CallListenerActivity? 브로드 캐스트 리시버를 등록한 플레이어) 활동을 의도로 추가로 저장된 플래그를 사용하여 다시 시작할 수 있습니다. 엑스트라에 플래그가 표시되면 활동의 의도를 평가하고 브로드 캐스트 리시버의 등록을 취소하십시오. 그런 다음 예제 코드에 표시된대로 호출 활동을 시작하십시오.

1

이다. 이것을 확인하려면 SharedPreference을 사용할 수 있습니다.

+0

Vineet,하지만 두 번째 전화를 브로드 캐스트 수신자로부터 어떻게 탈출시킬 수 있습니까? – subrussn90

+0

을 부울 값으로 받아 true로 설정하고 sharedpreference에 저장 한 다음 브로드 캐스트에서 전화를 받으면이 부울을 확인한 다음 true로 설정 한 다음 탈퇴하고 통화 완료시 false로 설정합니다. –

+0

하지만 브로드 캐스트는 여전히 두 번째 통화 ... 내 방송 수신자와 두 번째 발신 전화를 확인하고 싶지 않습니다 .... – subrussn90

관련 문제