Android发送短信待定意向

hjzp0vay  于 2023-03-21  发布在  Android
关注(0)|答案(1)|浏览(130)

我正在使用以下代码在我的Android应用程序中发送短信:

PendingIntent pending = PendingIntent.getBroadcast(activity, 0, new Intent(PENDING), 0);
    activity.registerReceiver(new BroadcastReceiver() {
        public void onReceive(Context arg0, Intent intent) {
            switch (getResultCode()) {
                case Activity.RESULT_OK: {
                    sendJsonData(false);
                    break;
                }

                case SmsManager.RESULT_ERROR_GENERIC_FAILURE: {
                    sendJsonData(true);
                    break;
                }

                case SmsManager.RESULT_ERROR_NO_SERVICE: {
                    sendJsonData(true);
                    break;
                }

                case SmsManager.RESULT_ERROR_NULL_PDU: {
                    sendJsonData(true);
                    break;
                }

                case SmsManager.RESULT_ERROR_RADIO_OFF: {
                    sendJsonData(true);
                    break;
                }
            }
        }

        private void sendJsonData(boolean error) {
        }
     }, new IntentFilter(PENDING));

    PendingIntent deliveryIntent = PendingIntent.getBroadcast(activity, 0, new Intent(DELIVERED), 0);
    activity.registerReceiver(new BroadcastReceiver() {
        @Override
        public void onReceive(Context arg0, Intent arg1) {
            switch (getResultCode()) {
                case Activity.RESULT_OK:
                    Log.i(TAG, "got here");
                    break;
                case Activity.RESULT_CANCELED:
                    Log.i(TAG, "got here");
                    break;
            }
        }
    }, new IntentFilter(DELIVERED));

我的问题是当我得到RESULT_OK时,我怎么知道游标适配器的_id列呢?我以后需要这个ID。我可以以后检查_id,但是有没有办法从pendingIntent得到它呢?
我在deliveryIntent交付后没有收到任何回调。

i7uq4tfw

i7uq4tfw1#

我的问题是,当我得到RESULT_OK时,我如何知道游标适配器的_id列?
您可以将ContentObserver放在SMS提供程序上,以便在编写消息时接收回调,然后查询提供程序以获取消息ID。我有一个在my answer here中如何执行此操作的示例。您只需要将"thread_id"更改为"_id"
我可以稍后检查_id,但是否有办法从pendingIntent获取它?
Intent附带的唯一额外的文档是一个可选的附加错误代码,用于一般故障。但是,如果您要检查任何实际运行的示例的额外代码,您可能会发现一些没有文档记录的代码,其中之一可能是消息的内容URI,可能使用"uri"作为键。不过,这可能并不是在所有地方都一致。这样我就不会依赖它了。
我在deliveryIntent交付后没有收到任何回调。
这种情况并不罕见,只有在收到服务中心的确认后才会触发delivery PendingIntent,但并不是每个无线运营商都提供这种功能。

相关问题