android - 发送未收到的短信广播

标签 android android-pendingintent android-broadcastreceiver smsmanager

我必须发送短信并在发送后执行一些操作,我使用广播挂起 Intent 广播状态如下。

BroadcastReceiver smsStatusReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            String action = intent.getAction();}
};

@Override
    protected void onCreate(Bundle savedInstanceState) {
        mBroadcastManager = LocalBroadcastManager.getInstance(this);
        mBroadcastManager.registerReceiver(smsStatusReceiver, new IntentFilter(ACTION_SENT));
        mBroadcastManager.registerReceiver(smsStatusReceiver, new IntentFilter(ACTION_DELIVERED));

        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Utils.sendSMS(MainActivity.this, "123456", "test", ACTION_SENT, ACTION_DELIVERED);
            }
        });
    }

在实用程序中

public static void sendSMS(Activity activity, String destination, String text, String sentAction, String deliveryAction) {    
        PendingIntent sentPI = null;
        PendingIntent deliveredPI = null;
        if (!TextUtils.isEmpty(sentAction)) {
            sentPI = PendingIntent.getBroadcast(activity, 0, new Intent(sentAction), 0);
        }
        if (!TextUtils.isEmpty(deliveryAction)) {
            deliveredPI = PendingIntent.getBroadcast(activity, 500, new Intent(deliveryAction), 0);
        }
        SmsManager smsManager = SmsManager.getDefault();
        smsManager.sendTextMessage(destination, null, text, sentPI, deliveredPI);
    }

尽管短信已成功发送,但从未调用过 onReceive(),在文档中找不到任何不直接的内容。 知道发生了什么事吗?

最佳答案

您是否在 Manifest 类中添加了 BroadcastReceiver?

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

关于android - 发送未收到的短信广播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49556694/

相关文章:

android - 从 Activity 外部调用 startActivity()?

android - 在广播接收器中检测呼出调用结束状态

android - 我如何在Android编程中获取TextView的默认值?

android - 更新同一订阅中的 flatMap 并发限制

android - 程序类型已存在:com.google.firebase.analytics.FirebaseAnalytics $ UserProperty

android - sendMultipartTextMessage ISms$Stub$Proxy.sendMultipartTextOnSubscription NullPointerException 异常

android - 方法内 PendingIntent 语句中的 "AlarmReceiverChangeImage"错误消息

android - 从 RAM 中清除应用程序时广播接收器不工作

java - 多个广播使用 AlarmManager 和 BroadcastReceiver 调用自己

android - 注册到 GCM 推送通知后如何重新加载 Android Webview