Android开发删除短信

本人一直有一个需求,想要手机自动拦截黑名单里联系人的信息并自动删除这些短信,手机管家之类的软件可以拦截但是没找到能删除这些短信的,于是就萌生了想自己写一个android软件的想法。

加上物联网的兴起,安卓设备开发肯定前景很好。 随后又得知 安卓开发可以用java语言,就用eclipse,呵呵,本人还是有些java基础的,于是乎,本人就开始扑腾了。

把eclipse sdk adt搭建好之后,本人就开始了开发这款自动拦截并删除黑名单短信的软件。都已经实现。

在编写过程中,删除短信的模块倒是坑了我挺长时间,原因是函数调用的时候参数值没写好,网上的版本多,当时crt+v的坑了我好久,现在把删除短信的模块发下。在我的手机上试过,亲测可用的。

public void deleteSMS( String smscontent)
    {
        try
        {
            // 准备系统短信收信箱的uri地址
            Uri uri = Uri.parse("content://sms/inbox");// 收信箱
            // 查询收信箱里所有的短信
            String[] projection = new String[] { "_id", "address", "person", "body", "date", "type" ,"thread_id"};//"_id", "address", "person",, "date", "type
            String where = " address = ‘10001‘";
            Cursor curs =    getContentResolver().query(uri, projection, where,null, "date desc");
            if(curs.moveToFirst())
            {

                do{
                    // String phone =
                    // isRead.getString(isRead.getColumnIndex("address")).trim();//获取发信人
                    String body =curs.getString(curs.getColumnIndex("body")).trim();// 获取信息内容
                    if (body.contains(smscontent))
                    {
                        int id = curs.getInt(curs.getColumnIndex("_id"));
                        getContentResolver().delete(Uri.parse("content://sms/"),"_id=?",new String[]{ String.valueOf(id)});
                    }
                }while (curs.moveToNext());
            }
            curs.close();
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }

算法思路是:把发件人是10001的所有短信中,包含某个字符串的短信给删除掉,想要把短信内容换成别的 _id、发件人之类的修改下函数就可以了啊。

调用这个模块的函数我是用一个button的 onClickListener来实现的。

        BtnDelMsg.setOnClickListener(new OnClickListener()
        {

            @Override
            public void onClick(View v)
            {
                // TODO Auto-generated method stub
                deleteSMS("尊敬的客户,截");
            }
        });

一个比较清晰简洁的参考链接

http://wx1985113.iteye.com/blog/1231094

总结:

删除短信函数参数的3种写法

getContentResolver().delete(Uri.parse("content://sms/"),"_id=?",new String[]{ String.valueOf(id)});
getContentResolver().delete(Uri.parse("content://sms/"),"_id="+id,null);
getContentResolver().delete(Uri.parse("content://sms/"+id),null,null);
 
时间: 2024-08-08 13:50:11

Android开发删除短信的相关文章

Android开发遇到短信备份失败

今天做了一个有关ContentProvider的短信备份的小案例,遇到短信备份失败,费了一番周折后终于找到了问题所在 该案例是将短信写到一个xml文件然后保存在手机存储中实现短信的备份功能,关键实现代码如下 public class SmsUtils { public static void backUpSms(List<SmsInfo> smsInfos, Context context) { try { XmlSerializer serializer = Xml.newSerialize

Qt for Android 开发的短信程序

http://book.zhulang.com/299065/734548.html http://book.zhulang.com/299065/734549.html http://book.zhulang.com/299065/734550.html http://book.zhulang.com/299065/734551.html http://book.zhulang.com/299065/734552.html http://book.zhulang.com/299065/7345

android 4.4删除短信

android 4.4之后非默认的短信应用已经没有办法删除短信了.像以前那样用如下方法是不会没法删除短信的(即使在xml中配置了短信的读写权限),同时也不会有报错或其他提示. public void deleteSMS() { try { ContentResolver CR = getContentResolver(); // Query SMS Uri uriSms = Uri.parse("content://sms/inbox"); Cursor c = CR.query(ur

android 添加手机短信,获取手机短信,删除手机短信和修改手机短信

注意添加权限: <uses-permission android:name="android.permission.READ_SMS"></uses-permission> <uses-permission android:name="android.permission.WRITE_SMS"></uses-permission> 代码如下: //更新短信 private void UpdateSMS() { /* u

android删除短信

代码如下: //删除短信 getContentResolver().delete(Uri.parse("content://sms/#"),"address=?", new String[]{"10001"}); getContentResolver().delete(Uri.parse("content://sms/#"),"body=?", new String[]{"10001"}

Android 删除短信

1.删除短信的函数,一条一条的删除所有短信 /* * Delete all SMS one by one */ public void deleteSMS() { try { ContentResolver CR = getContentResolver(); // Query SMS Uri uriSms = Uri.parse("content://sms/sent"); Cursor c = CR.query(uriSms, new String[] { "_id&qu

android 中管理短信

为了看代码方便,一边在网上google资料,一边看Android java 源代码. 偶然发现了一个类MmsSmsDatabaseHelper.java,原来android将所有的短信信息都存入了mmssms.db中. 公开的SDK中没有这个类,不能直接使用.于是自己写了一个SQLiteOpenHelper,但是查询的时候发生SQL异常. 看来不能为所欲为了,不过据网上资料介绍可以拷贝db文件来实现短信数据备份. 既然每个db跟package名相关,建立了一个package为com.androi

android 管理手机短信

为了看代码方便,一边在网上google资料,一边看Android java 源代码. 偶然发现了一个类MmsSmsDatabaseHelper.java,原来android将所有的短信信息都存入了mmssms.db中. 公开的SDK中没有这个类,不能直接使用.于是自己写了一个SQLiteOpenHelper,但是查询的时候发生SQL异常. 看来不能为所欲为了,不过据网上资料介绍可以拷贝db文件来实现短信数据备份. 既然每个db跟package名相关,建立了一个package为com.androi

Android 监听短信(同时监听广播和数据库)

暗扣,强烈谴责这种侵害用户利益的行为... 下面给大家介绍Android暗扣原理.......  Android4.4以下的系统玩游戏就要小心了哈 暗扣方式之一:短信订购,即监听--------拦截------------处理短信. 暗扣方式之二:模拟人为操作(又叫模拟流量),通过后台程序代码模拟人的点击行为,暗自给用户订购业务,由运营商收取你的费用,当然这其中也需要涉及监听/拦截/处理短信.使用这种方式的原理无非是Http处理网页,还涉及接入点切换问题,这里就不详细讲解. 回归正题:有的时候,