文档章节

获取Android短信草稿箱号码为空的解决办法

tedzyc_rs
 tedzyc_rs
发布于 2014/12/28 12:11
字数 211
阅读 62
收藏 0

       通过"content://sms"可以获取用于展现短信的几乎所有的信息,但是草稿箱的号码若通过"address"字段来获取的话,是空的。我目前找到了一种方法可以获取,不一定是最佳的方法。

       参考了http://bbs.csdn.net/topics/350089080。不废话了,请将下面代码(manifest里面别忘了加“<uses-permission android:name="android.permission.READ_SMS" />”这句)植入MainActivity的onCreate()里面,然后运行之:

ContentResolver resolver = getContentResolver();
        Cursor cursorForThreadId = resolver.query(Uri.parse("content://mms-sms/conversations?simple=true"), null, null,
                null, null);

        while (cursorForThreadId.moveToNext()) {
            
            long threadId = cursorForThreadId.getLong(cursorForThreadId.getColumnIndex("_id"));
            Log.e("", "thread_id = " + threadId);

            Cursor cursorSms = resolver.query(Uri.parse("content://sms"), null, "thread_id=" + threadId, null, null);

            while (cursorSms.moveToNext()) {

                String address = null;
                /**
                 * Draft's "type" is 3.
                 */
                if (cursorSms.getInt(cursorSms.getColumnIndex("type")) == 3) {
                    Cursor cursorCanonicalAddress = resolver.query(
                            Uri.parse("content://mms-sms/canonical-address/" + threadId), null, null, null, null);
                    if (cursorCanonicalAddress.moveToFirst()) {
                        address = cursorCanonicalAddress.getString(cursorCanonicalAddress.getColumnIndex("address"));
                    }
                    cursorCanonicalAddress.close();
                } else {
                    address = cursorSms.getString(cursorSms.getColumnIndex("address"));
                }

                Log.e("", "address = " + address + "  body = " + cursorSms.getString(cursorSms.getColumnIndex("body")));
            }

            cursorSms.close();
            Log.e("", "------------------------");
        }

        cursorForThreadId.close();


© 著作权归作者所有

tedzyc_rs
粉丝 0
博文 38
码字总数 7450
作品 0
成都
私信 提问
Android SMS(一) —— 读取短信

Android SMS Read AndroidManifest.xml 权限 记得在AndroidManifest.xml中加入android.permission.READ_SMS这个permission 运行结果: 代码示例 URI主要有: content://sms/ 所有短信 conten......

长平狐
2013/01/06
259
0
Android SMS 短信读取

Android SMS Read AndroidManifest.xml 权限 记得在AndroidManifest.xml中加入android.permission.READ_SMS这个permission 运行结果: 代码示例 URI主要有: content://sms/ 所有短信 conten......

鉴客
2012/03/09
10.4K
0
Android 接受短信和发送短信

1.android发送短信 android API 中提供了smsManager类处理短信。其中的sendTextMessage(num, null, content, pend, null)函数就是发送 短信的方法。第一个参数为目标者手机号、第二个参数为短...

Calm_
2012/10/24
7.4K
1
Android短信操作(通过内容提供者)

1、Android短信数据库表结构 URI主要有: content://sms/ 所有短信 content://sms/inbox 收件箱 content://sms/sent 已发送 content://sms/draft 草稿 content://sms/outbox 发件箱 content:......

维特的烦恼
2014/01/25
124
1
Android Mms 数据库

在mmssms.db中与彩信相关的表有 数据表 MMS模块总共包含17张表:addr、androidmetadata、attachments、canonicaladdresses、drm、 part、pdu、pendingmsgs、rate、raw、sms、srpending、thr...

娶到笨笨
2014/03/14
102
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周一乱弹 —— 人生,还真是到处是意外

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @这次装个文艺青年吧 :#今日歌曲推荐# 分享lil peep的单曲《High School》 《High School》- lil peep 手机党少年们想听歌,请使劲儿戳(这里...

小小编辑
26分钟前
3
0
Spring使用ThreadPoolTaskExecutor自定义线程池及实现异步调用

多线程一直是工作或面试过程中的高频知识点,今天给大家分享一下使用 ThreadPoolTaskExecutor 来自定义线程池和实现异步调用多线程。 一、ThreadPoolTaskExecutor 本文采用 Executors 的工厂...

CREATE_17
今天
6
0
CSS盒子模型

CSS盒子模型 组成: content --> padding --> border --> margin 像现实生活中的快递: 物品 --> 填充物 --> 包装盒 --> 盒子与盒子之间的间距 content :width、height组成的 内容区域 padd......

studywin
今天
7
0
修复Win10下开始菜单、设置等系统软件无法打开的问题

因为各种各样的原因导致系统文件丢失、损坏、被修改,而造成win10的开始菜单、设置等系统软件无法打开的情况,可以尝试如下方法解决 此方法只在部分情况下有效,但值得一试 用Windows键+R打开...

locbytes
昨天
8
0
jquery 添加和删除节点

本文转载于:专业的前端网站➺jquery 添加和删除节点 // 增加一个三和一节点function addPanel() { // var newPanel = $('.my-panel').clone(true) var newPanel = $(".triple-panel-con......

前端老手
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部