【问题标题】:How to access Unread SMS in Android?如何在 Android 中访问未读短信?
【发布时间】:2012-10-18 14:00:03
【问题描述】:

我可以通过以下方式在 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.通过意图 2.Java邮件接口

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

【问题讨论】:

    标签: android email sms jakarta-mail android-contentresolver


    【解决方案1】:

    获取未读短信:

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

    【讨论】:

      【解决方案2】:

      您可以使用 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
              }
      
                }
      

      【讨论】:

      • 先生! SmsManager.STATUS_ON_ICC_UNREAD 每次都给出 (3)。 & 每次调试时状态为 -1 & unread=null。问题出在哪里?
      猜你喜欢
      • 2011-06-16
      • 2019-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-09
      • 1970-01-01
      • 2010-10-28
      • 2012-01-28
      相关资源
      最近更新 更多