2017-04-10 81 views
1

我有数据库中的数字。不运行BroadcastReceiver代码

如果这个数字相等,我想列出传入的SMS消息。

我的问题是我的代码的最后一部分没有运行。 (结束后如果)。

请指导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