SMS Pending Intent获取已发送的SMS或MMS的_id

时间:2016-03-31 20:46:15

标签: android sms mms

目前,我可以毫无问题地发送短信和彩信。我的问题是,当我发送确认信息为PendingIntent时,如何获取已发送邮件的_id?有没有办法提到那个短信?我正在做以下事情:

    Intent sentIntent = new Intent(id_value);
    PendingIntent sentPendingIntent = PendingIntent.getBroadcast(context.getApplicationContext(), 0, sentIntent, PendingIntent.FLAG_UPDATE_CURRENT);
    context.registerReceiver(new BroadcastReceiver() {

        @Override
        public void onReceive(Context context, Intent intent) {
            String result = "";

            switch (getResultCode()) {
                case Activity.RESULT_OK:
                    break;
                default:
                    break;
            }
        }

    }, new IntentFilter(id_value));

在上面的示例中,id_value是我生成的随机值,用于标识发送了哪个SMS或MMS。但我想知道,短信和彩信数据库中消息的_id是什么?

1 个答案:

答案 0 :(得分:1)

uri中有一个extras密钥用于意图。你可以这样得到它:

    context.registerReceiver(new BroadcastReceiver() {
        public void onReceive(Context context, Intent intent) {
            switch (getResultCode()) {
                case Activity.RESULT_OK: {
                    Bundle bundle = intent.getExtras();
                    String uri = bundle.getString("uri");
                }
                    break;

                default: {
                }
                    break;
            }
        }

    }, new IntentFilter(id));

在这种情况下,uri将与content://sms/7384类似。在这种情况下,7834_id字段。使用内容解析器,我们可以获得该短信或彩信的详细信息。

这是我发送待处理意图的一部分。

请注意,如果您发送多部分短信,则只有一个回拨才能拥有uri。其余的将为该字段为空。