从onReceive android获取消息\u id

从onReceive android获取消息\u id,android,sms,Android,Sms,我试图获取一个信息id,该id保存在与每条信息关联的手机中,但未能获取。我现有的代码在这里 public void onReceive(Context context, Intent intent) { Bundle intentExtras = intent.getExtras(); if (intentExtras != null) { Object[] sms = (Object[]) intentExtras.get(SMS_BUN

我试图获取一个信息id,该id保存在与每条信息关联的手机中,但未能获取。我现有的代码在这里

public void onReceive(Context context, Intent intent) {
        Bundle intentExtras = intent.getExtras();
        if (intentExtras != null) {
            Object[] sms = (Object[]) intentExtras.get(SMS_BUNDLE);
            String smsMessageStr = "";
            for (int i = 0; i < sms.length; ++i) {
                SmsMessage smsMessage = SmsMessage
                        .createFromPdu((byte[]) sms[i]);

                smsBody = smsMessage.getMessageBody().toString();
                address = smsMessage.getOriginatingAddress();
            //  smsMessageId = how to get message id ?
                long millis= smsMessage.getTimestampMillis();

                Date date = new Date(millis);
                Calendar c = Calendar.getInstance();

                // set the calendar to start of today
                c.set(Calendar.HOUR_OF_DAY, 0);
                c.set(Calendar.MINUTE, 0);
                c.set(Calendar.SECOND, 0);
                c.set(Calendar.MILLISECOND, 0);

                // and get that as a Date
                Date today = c.getTime();

                if (date.before(today)) {
                    smsDate = (String) DateFormat.format(" MMMM dd ", new Date(
                            millis));
                } else {
                    smsDate = (String) DateFormat.format("  h:mm ",
                            new Date(millis));
                }

                if (pre_address.equals(address)) {

                    smsMessageStr += "SMS From: " + address + "\n";
                    smsMessageStr += smsBody + "\n";
                }
            }

            SMSItem smsItem = new SMSItem();
            smsItem.sms = smsBody ; 
            smsItem.status = false;
            smsItem.time = smsDate;

            Toast.makeText(context, smsMessageStr, Toast.LENGTH_SHORT).show();

            // this will update the UI with message
            SmsActivity inst = SmsActivity.instance();
            if (inst != null) {
                inst.updateList(smsBody);
                if (pre_address.equals(address))
                    inst.Notify(inst.getMessageCountUnread()
                            + " unread message", address);
            }
        }
public void onReceive(上下文、意图){
Bundle intentExtras=intent.getExtras();
if(intentExtras!=null){
Object[]sms=(Object[])intentExtras.get(sms_BUNDLE);
字符串SMSMessagester=“”;
对于(int i=0;i
通过这个,我得到了短信正文和发件人号码。但我知道android手机中的每条短信都有一个唯一的号码,我检索了它。但无法在onReceive方法中检索。如何在onReceive方法中检索短信id?

查看
Uri myMessage = Uri.parse("content://sms/");
ContentResolver cr = getContentResolver();
Cursor c = cr.query(myMessage, new String[] { "_id", "address", "date", "body","read" },"_id = "+smsID, null, null);

c.moveToFirst();

String Number = c.getString(c.getColumnIndexOrThrow("address")).toString();

String ReadStatus = c.getString(c.getColumnIndex("read"));
String Body = c.getString(c.getColumnIndexOrThrow("body")).toString();

c.close();