首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >阅读短信只显示当月短信

阅读短信只显示当月短信
EN

Stack Overflow用户
提问于 2017-07-05 16:15:59
回答 1查看 43关注 0票数 0

我试图将sms转储到文本文件,但它只读取从日期1到当前日期的当前月份消息。我怎么可能读所有的短信,而不设置应用程序为默认或类似的?

代码语言:javascript
复制
public List<Sms> getAllSms() {
    List<Sms> lstSms = new ArrayList<Sms>();
    Sms objSms = new Sms();
    Uri message = Uri.parse("content://sms/");
    ContentResolver cr = this.getContentResolver();

    Cursor c = cr.query(message, null, null, null, null);
    this.startManagingCursor(c);
    int totalSMS = c.getCount();

    if (c.moveToFirst()) {
        for (int i = 0; i < totalSMS; i++) {

            objSms = new Sms();
            objSms.setId(c.getString(c.getColumnIndexOrThrow("_id")));
            objSms.setAddress(c.getString(c
                                          .getColumnIndexOrThrow("address")));
            objSms.setMsg(c.getString(c.getColumnIndexOrThrow("body")));
            objSms.setReadState(c.getString(c.getColumnIndex("read")));
            String date = c.getString(c.getColumnIndexOrThrow("date"));
            Long timestamp = Long.parseLong(date);    
            Calendar calendar = Calendar.getInstance();
            calendar.setTimeInMillis(timestamp);
            Date finaldate = calendar.getTime();
            objSms.setTime(finaldate.toString());
            if (c.getString(c.getColumnIndexOrThrow("type")).contains("1")) {
                objSms.setFolderName("inbox");
            } else {
                objSms.setFolderName("sent");
            }

            lstSms.add(objSms);
            c.moveToNext();
        }
    }
    // else {
    // throw new RuntimeException("You have no SMS");
    // }
    c.close();

    return lstSms;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-05 22:07:45

阅读收件箱并单独发送解决了我的问题

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44931344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档