0

我可以从这里读取 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) {

            }

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

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

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

4

2 回答 2

1

获取未读短信:

Cursor cur = getContentResolver().query(uriSMSURI, null, "read = 0", null, null);
于 2012-10-18T14:05:31.160 回答
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
        }

          }
于 2012-10-18T14:18:11.910 回答