2017-04-10 7 views
1

私はデータベースに番号を持っています。BroadcastReceiverコードを実行しません

この番号が等しい場合、着信SMSメッセージをリストしたいと思います。

私の問題は、コードの最後の部分が実行されていないことです。 (最後のIfの後)。

案内してくださいme.thanks

incomingSms:あなたの受信機のクラスが動作していない、このコードを追加しない場合

public class IncomingSms extends BroadcastReceiver { 

SmsManager smsManager = SmsManager.getDefault(); 

@Override 
public void onReceive(Context context, Intent intent) { 
    Bundle bundle = intent.getExtras(); 
    if (bundle != null) { 
     Object[] pdusObj = (Object[]) bundle.get("pdus"); 
     for (int i = 0; i < pdusObj.length; i++) { 

      SmsMessage currentmessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]); 
      String phoneNumber = currentmessage.getDisplayOriginatingAddress(); 

      String senderNum = phoneNumber; 
      String message = currentmessage.getDisplayMessageBody(); 

      Log.i("payam", "senderNum=" + senderNum + " | msg=" + message); 
      DBAdapter db = new DBAdapter(context); 
      db.open(); 
      List<sh_number> blocknumbers = db.getAllNUMBERItem(); 
      db.close(); 
      for (sh_number thisblocknumber : blocknumbers) { 
       if (senderNum.equals(thisblocknumber.getnumber())) { 

        Toast.makeText(context, "پیام دریافتی بلاک شد. ", Toast.LENGTH_LONG).show(); 
        sh_msg thisMsg = new sh_msg(); 
        thisMsg.setText(message); 
        thisMsg.setnumber(senderNum); 
        db.open(); 
        db.insertSH_MSG(thisMsg); 
        db.close(); 
        abortBroadcast(); 


       } 
      /*if(senderNum.equals("5554")){ 
       Toast.makeText(context, "پیام دریافتی بلاک شد. ", Toast.LENGTH_LONG).show(); 

       sh_msg thisMsg = new sh_msg(); 
       thisMsg.setText(message); 
       thisMsg.setnumber(senderNum); 
       db.open(); 
       db.insertSH_MSG(thisMsg); 
       db.close(); 
       abortBroadcast(); 
      }else { 
       Toast.makeText(context, "senderNum="+senderNum+" | msg="+message,Toast.LENGTH_LONG).show(); 
      }*/ 

      } 
     } 
    } 
} 
+0

あなたのお返事ありがとうございました。 – shekari

答えて

0

あなたは、マニフェストファイル内のレシーバ・クラスを追加しました!それを確認してください。

<receiver 
     android:name=".IncomingSms" 
     android:permission="android.permission.BROADCAST_SMS"> 
     <intent-filter> 
      <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 
     </intent-filter> 
    </receiver> 
+0

お返事ありがとうございます。 – shekari

関連する問題