如何在Android中访问未读短信?

时间:2012-10-18 14:00:03

标签: android email sms javamail android-contentresolver

我可以通过以下方式阅读Android中的短信: -

        phonesms = new ArrayList<String>();    
        ContentResolver cr = getContentResolver();                                                                  
    Uri uriSMSURI = Uri.parse("content://sms/inbox");
Cursor cur = getContentResolver().query(uriSMSURI, null, null, null,null);
    startManagingCursor(cur);
    if (cur.moveToFirst()) {
        for (int i = 0; i < cur.getCount(); i++) {
            try {
 String smsbody = cur.getString(cur.getColumnIndexOrThrow("body")).toString();
 phonesms.add(smsbody);

            } catch (Exception e) {

            }

现在问题是我想访问未读短信&amp;在一段时间内通过电子邮件自动发送未读短信。

我可以通过以下两种方法发送电子邮件短信: - 1.通过意图 2.Java Mail Api

如何在固定时间段内通过电子邮件自动发送未读短信。

2 个答案:

答案 0 :(得分:1)

要获取未读短信:

Cursor cur = getContentResolver().query(uriSMSURI, null, "read = 0", null, null);

答案 1 :(得分:0)

你可以使用cur.getString(cur.getColumnIndexOrThrow(“status”)来判断它是否被读取。或者你可以将它们包含在查询本身中,只过滤掉未读的消息。

  while (cur.moveToNext()) {
               String address = cur.getString(cur.getColumnIndex("address"));
               String body = cur.getString(cur.getColumnIndexOrThrow("body"));
        int status = cur.getString(cur.getColumnIndexOrThrow("status"));
        if(status == SmsManager.STATUS_ON_ICC_UNREAD ) {
        //do whatever you want
        }

          }