2012-01-09 8 views
0

イム...アンドロイドBroadcastreceiver問題

私の問題は、私が使用してコールをブロックしたときに、ということです私がプログラムで開始する2番目の呼び出しもブロックされています...

最初の呼び出しをブロックした後、または他の方法やテクニックをブロックした後で、ブロードキャストの登録を解除する方法はありますか?

これは、あなたが店にあなたが呼び出しを開始し、コールマーク、それが完了した後にされているチェックを使用することができます...

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

私は私のアプリのために実装私broadcastreceiverです。これについては、SharedPreferenceを使用して確認してください。

+0

Vineet、しかし、2番目の呼び出しをどのように放送受信者からエスケープすることができますか? – subrussn90

+0

ブール値を受け取り、それをtrueに設定してsharedpreferenceに格納してから、ブロードキャストでコールを取得したら、このブールをチェックしてtrueであればエスケープし、コール完了時にfalseに設定します... –

+0

しかし、セカンドコール...私はブロードキャストレシーバと2番目の発信コールをチェックしたくない... – subrussn90

関連する問題