2016-04-18 12 views
0

私のアプリケーションでは、ユーザー登録時にSMSからアクティベーションコードを受け取る必要があります。そのために私はBroadcastReceiverを持っていますが、私はいつも有効にしたいとは思っていません。どうやってするか?必要時にBroadcastReceiverを無効/有効にする

+0

ローカルブロードキャストレシーバレジスタは、単一クラスで使用できます。または、受信機で確認するための条件を入れることができます。 http://stackoverflow.com/questions/18842517/broadcast-receiver-class-and-registerreceiver-method/18842810#18842810 –

答えて

2

アクティビティでは、registerReceiverとunregisterReceiverを呼び出すことができます。受信機は、あなたの放送受信機のクラスおよびフィルタである

 registerReceiver(receiver, filter); 
     unregisterReceiver(receiver); 

がSMS受信機の包み

private IntentFilter filter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED"); 

次のようになります。ここでの例があります。

smsを受信して​​から着信SMSの受信を停止するためにunregisterReceiverを呼び出す必要がある場合は、registerReceiverを呼び出すことができます。

+0

が登録されていないと機能していません。私はそれを登録するまでそれを無効にしたいです –

+0

あなたはマニフェストファイルにそれを登録しましたか? – nilkash

+0

ああ、今私はそれを試してみましょう –

0

このためには、ブロードキャスト受信者をアクティビティに登録する必要があります。そのアクティビティのインスタンスに対してのみ有効です。マニフェストに登録する代わりに、必要なときに実行時にアクティビティに登録するだけです。

+0

マニフェストで定義することなく受信機を登録する方法を参照できますか?郵便番号 –

+0

参照のためにこの回答をチェックすることができますhttp://stackoverflow.com/questions/7439041/how-to-unregister-broadcastreceiver –

+0

このチュートリアルでは、両方の方法を理解することができます:http://www.vogella.com /tutorials/AndroidBroadcastReceiver/article.html –

関連する問題