摩西bfjr
摩西bfjr
  • 发布:2017-11-24 16:16
  • 更新:2021-10-28 09:25
  • 阅读:6967

android遍历短信/读取短信

分类:Native.js

我本机华为meta8通过以下代码是可以遍历所有短息内容的。

        var Uri = plus.android.importClass("android.net.Uri");  
        var ContactsContract = plus.android.importClass('android.provider.ContactsContract');  
        var uri = Uri.parse("content://sms/");  
        var cr = main.getContentResolver();  
        plus.android.importClass(cr);  
        var cur = cr.query(uri, null, null, null, null);  
        plus.android.importClass(cur);  
        cur.moveToFirst();  
        while(cur.moveToNext()) {  
            var index_Address = cur.getColumnIndex("address");  
            var address = cur.getString(index_Address);  
            //短信内容  
            var index_Body = cur.getColumnIndex("body");  
            var body = cur.getString(index_Body);  
            //类型1接收 2发送  
            var index_Type = cur.getColumnIndex("type");  
        }  
        cur.close();

希望对大家有帮助!

3 关注 分享
Float 7***@qq.com 2***@qq.com

要回复文章请先登录注册

9***@qq.com

9***@qq.com

遇到了TYPE of null 的问题 解决办法https://ask.dcloud.net.cn/article/39398
2021-10-28 09:25
9***@qq.com

9***@qq.com

回复 2***@qq.com :
请问解决了吗?遇到相同问题
2021-10-27 13:19
2***@qq.com

2***@qq.com

您好 ,非常感谢您提供的代码,我在cur.moveToFirst(); 这一行出了这么一个错误TypeError: Cannot read property '__TYPE__' of null请问是什么原因导致的呢
2021-07-16 14:29
j***@qq.com

j***@qq.com

抄代码都不会。。。。。main跑哪去了???
2021-04-22 00:35
h***@qq.com

h***@qq.com

这里有个bug,第一条短信没被遍历,改一下:
```
var Uri = plus.android.importClass("android.net.Uri");
var ContactsContract = plus.android.importClass('android.provider.ContactsContract');
var uri = Uri.parse("content://sms/");
var cr = main.getContentResolver();
plus.android.importClass(cr);
var cur = cr.query(uri, null, null, null, null);
plus.android.importClass(cur);
cur.moveToFirst();
let index_Address1 = cur.getColumnIndex("address");
let address1 = cur.getString(index_Address1);
//短信内容
let index_Body1 = cur.getColumnIndex("body");
let body1 = cur.getString(index_Body1);
//类型1接收 2发送
let index_Type1 = cur.getColumnIndex("type");
let type1 = cur.getString(index_Type1);
while(cur.moveToNext()) {
var index_Address = cur.getColumnIndex("address");
var address = cur.getString(index_Address);
//短信内容
var index_Body = cur.getColumnIndex("body");
var body = cur.getString(index_Body);
//类型1接收 2发送
var index_Type = cur.getColumnIndex("type");
}
cur.close();
```
2021-01-27 15:59
1***@qq.com

1***@qq.com

非常明显的bug,moveFirst了,又moveToNext,这是忽略第一个?
2021-01-25 17:01
r***@163.com

r***@163.com

求助,请问如何判断是哪个卡槽收到的短信?
2021-01-05 16:21
x***@outlook.com

x***@outlook.com

厉害
2021-01-01 13:55
大肥光光

大肥光光

有些机型不能完全获取完所有短信。各位大哥有没有什么解决方案?
https://ask.dcloud.net.cn/article/id-676__page-2 这个监听短信的 方案中 :
var SmsMessage = plus.android.importClass('android.telephony.SmsMessage'); 这个是否能用于遍历短信?
2020-09-16 17:04
w***@163.com

w***@163.com

回复 1***@qq.com :
短信一多,app就卡死了,有什么可以优化的吗
2020-06-23 14:22