成都网站建设设计

将想法与焦点和您一起共享

关于smsandroid的信息

如何在android上删除sms短信

1:获得内天提供者解析器: ContentResolver contentResolver = getContentResolver();

我们注重客户提出的每个要求,我们充分考虑每一个细节,我们积极的做好网站建设、网站制作服务,我们努力开拓更好的视野,通过不懈的努力,创新互联赢得了业内的良好声誉,这一切,也不断的激励着我们更好的服务客户。 主要业务:网站建设,网站制作,网站设计,微信小程序开发,网站开发,技术开发实力,DIV+CSS,PHP及ASP,ASP.Net,SQL数据库的技术开发工程师。

2:设置uri:Uri uri = Uri.parse("content://sms")

3:执行delete方法: contentResolver.delete(uri,null,null);

看你上面写的似乎不想删除全部,执行删除某一个?

你的这两个方法:

mResolver.delete(Uri.parse("content://sms/"), "_id="+ id, null));

mResolver.delete(Uri.parse("content://sms/" ), "thread_id="+ threadId, null));

第一个参数uri,第二个参数:条件,第三个参数:条件的值:

mResolver.delete(Uri.parse("content://sms/"), "_id=?", new String[]{"xxx"});

mResolver.delete(Uri.parse("content://sms/" ), "thread_id=?", new String[]{"xxx"}));

这里需要使用到?:占位符。

请熟读sql语句,和方法的参数。

android怎样读取sms数据库指定字段的数据

Android APK操作短信数据时,不能使用SQLHelper直接操作,需要使用协议,协议使用Uri转义

content://sms/inbox 收件箱

content://sms/sent 已发送

content://sms/draft 草稿

content://sms/outbox 发件中

content://sms/failed 失败

content://sms/queued 待发送

数据库中sms相关的字段如下:

_id primary key integer 与words表内的source_id关联

thread_id 会话id,一个联系人的会话一个id,与threads表内的_id关联 integer

address 对方号码 text

person 联系人id integer

date 发件日期 integer

protocol 通信协议,判断是短信还是彩信 integer 0:SMS_RPOTO, 1:MMS_PROTO

read 是否阅读 integer default 0 0:未读, 1:已读

status 状态 integer default-1 -1:接收,

0:complete,

64: pending,

128: failed

type 短信类型 integer 1:inbox

2:sent

3:draft56

4:outbox

5:failed

6:queued

body 内容

service_center 服务中心号码

subject 主题

reply_path_present

locked

error_code

seen

具体使用方法:

Cursor cursor = mContentResolver.query(Uri.parse("content://sms"), String[] projection, String selection, String[] selectionArgs,String sortOrder);

if(cursor!=null)

if(cursor.moveToFirst())

{String address = cursor .getString(draftCursor.getColumnIndexOrThrow("address"));}

query转义sql语句时将query函数中的参数转义为

select projection[] from sms where selection[] = selectionArgs[] order by sortOrder

由于Android2.2 Messaging中存储草稿短信时不会将address存入sms表中,而以thread_id为索引,将草稿短信的address存入canonical_addresses表中而导致仅根据协议无法查询到draft msgs address(这种设计缺陷是因为Android为了使UI更加效率而使draft msgs不同于其他类型的msgs存储方式所导致的),那么根据这样的转义方式我们可以扩展一下这种select语句使他可以查询到sms表以外的东西:

Cursor draftCursor = mResolver.query(Uri.parse("content://sms"),

new String[] {"canonical_addresses.address " +

"from sms,threads,canonical_addresses " +

"where sms.thread_id=threads._id and threads.recipient_ids=canonical_addresses._id and sms._id ='" +

String.valueOf(target_message_id) + "' --"},

null, null, null);

有点耍滑头,是吧,用到了sql语句中注释符号“--”

这样我们就将这个语句转化为了:

select canonical_addresses.address from sms,threads,canonical_addresses where sms.thread_id=threads._id and threads.recipient_ids=canonical_addresses._id and sms._id = 'target_message_id' -- from sms

在sql语句解析的时候,--from sms是不予解析的,所以就成功执行了前面的联合查询操作而得到了我们想要的canonical_addresses表中的address数据。

手机群发短信的时候,每一次信息都提示:android sms发送大量信息,是否继续发,确定,取消。

这应该是群发短信软件的问题。

也就是说,在软件编写中,加入了发送数目的判断。当数目多于一定量时,出现对话框。

有这么一个判断,使得软件更人性化,允许你发送前最后做一次考虑,再做决定。

应该有两种解决方法:

一:看看软件设置,有没有取消提醒之类的选择。

二:修改软件程序,把判断部分去掉。(这个可能性不大,必须知道软件源码才行)。

也有可能是手机本身的设置问题。由于我没有用过你的手机 ,无法做出判断。

你可以做一个简单测试,不通过群发短信软件,用手机直接群发,看看有没有这个问题。

如果同样有提示,看看手机设置里面能否更改。

请问各位手机高手,androidSMS是什么?

做镜像是使用recovery来做的吧?就等于电脑做ghost。androidsms就是手机发送信息的自带应用。你做了镜像之后,用他给的软件,在电脑里打开相关镜像,然后进入androidsms这个文件夹,里面就有你需要找的东西了。

因为前面部分不是很清楚,不知道你用的什么软件,所以没法详细说。大致就是用usb连接手机,然后使用recovery之类的软件备份,备份后进入镜像找到androidsms文件夹,找到相应的txt,保存后,把镜像修改后再把内容还原,然后就可以刷机了。


本文标题:关于smsandroid的信息
文章分享:http://chengdu.cdxwcx.cn/article/dsiggdj.html