java - 不运行BroadcastReceiver代码

标签 java android broadcastreceiver

我的数据库中有这些数字。

如果此数字等于,我想列出传入的 SMS 消息。

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

请指导我,谢谢

传入短信:

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();
            }*/

            }
        }
    }
}

最佳答案

您是否在 list 文件中添加了接收器类,如果您不添加此代码,您的接收器类将无法工作!请检查那个。

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

关于java - 不运行BroadcastReceiver代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43320575/

相关文章:

安装后 Android BroadcastReceiver 不工作

android - BroadcastReceiver 中的 SharedPreferences 似乎没有更新?

android - 内部带有水平 ScrollView 的 ViewPager2

java - java中如何读取这种文本文件

java - 我应该使用什么类来代替已弃用的 AmazonCloudFrontClient?

java - 如何防止修改类中的私有(private)字段?

android - 如何将 Activity 添加到收藏夹列表?

android - 在 EditText 中仅设置某些数字 - Android

java - 我无法从我的 BroadcastReceiver 获得 startService

java - 需要关于是否保留此代码的建议