`
xyz_lmn
  • 浏览: 62800 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

android系统短信库的一些用法

 
阅读更多

1、查询所有短信,按发件人进行分组

Cursor  mCursor =
 
                    managedQuery(Uri.parse("content://sms"),
 
                        new String[] {"_id,address,date,read,status,type,body,count(address) as "
 
                            + "totleCount from (select _id,substr(address,4) as address,date,read,status,type,body "
 
                            + "from sms where address like \"+86%\" union select _id,address,date,read,status,type,body "
 
                            + "from sms where address not like \"+86%\") r group by r.address order by r.date desc --"},
 
                        null,
 
                        null,
 
                        null);


2、删除一个联系人的所有短信会话,包括+86的号码

    /**
 
     * 删除一个联系人的所有短信会话,包括+86的号码
 
     * @param phone
 
     */
 
    public int deleteMsgSession(Context context, String phone)
 
    {
 
        String phoneBytitle = "";
 
        if (!phone.startsWith("+86"))
 
        {
 
            phoneBytitle = "+86" + phone;
 
        }
 
        else
 
        {
 
                phoneBytitle = phone.substring(3);
 
        }
 
        
 
        Cursor cursor =
 
            context.getContentResolver()
 
                .query(Uri.parse("content://sms"), new String[] {"distinct thread_id"}, "address = ? or address = ?", new String[] {phone, phoneBytitle}, null);
 
        List<String> list = new ArrayList<String>();
 
        if (null != cursor)
 
        {
 
            if (cursor.moveToFirst())
 
            {
 
                do
 
                {
 
                    int thread_id = cursor.getInt(0);
 
                    list.add(String.valueOf(thread_id));
 

                } while (cursor.moveToNext());
 
            }
 
        }
 
         if (null != cursor)
 
        {
 
            cursor.close();
 
            cursor = null;
 
        }        
 
        int size = list.size();
 
        if(size == 0)
 
        {
 
            return -1;
 
        }
 
        else
 
        {
 
            int num = 0;
 
            for (int i = 0; i < size; i++)
 
            {
 
                int res = context.getContentResolver().delete(Uri.parse("content://sms/conversations/" + list.get(i)),
 
                    null, null);
 
                num = num + res;
 
            }
 
//            System.out.println("sms_num:" + num);
 
            return num;
 
        }
 
    }


3、向系统库插入短信、版本不同插入的字段有所区别

/**
 
     * 将发送的短信保存到系统短信库中
 
     */
 
    private void foreverSendMsg(String content)
 
    {
 
        ContentValues values = new ContentValues();
 
        //系统SDK的版本号
 
        String sdkVersion = android.os.Build.VERSION.SDK;
 
        try
 
        {
 
            // 发送时间
 
            values.put("date", System.currentTimeMillis());
 
            // 阅读状态
 
            values.put("read", 1);
 
            // 送达号码
 
            values.put("address", phoneNumberTextView.getText().toString());
 
            // 送达内容
 
            values.put("body", content);
 
         
 
            //SDK为2.1时,插入的字段
 
            if(ConstValue.SDK_VERSION == Integer.valueOf(sdkVersion))
 
            {
 
                values.put("status", -1);
 
                values.put("type", 2);
 
//                values.put("locked", 0);
 
            }
 
            else
 
            {
 
                // 设置可见
 
              values.put("seen", 1);
 
            }
 
         
 
            getContentResolver().insert(Uri.parse("content://sms/sent"), values);
 
        }
 
        catch (Exception e)
 
        {
 
            e.printStackTrace();
 
        }
 
        finally
 
        {
 
            values = null;
 
        }


/**
* @author 张兴业
* 邮箱:xy-zhang#163.com
* android开发进阶群:278401545
*
*/

分享到:
评论

相关推荐

    android系统原理及开发要点详解

     第5章“Android的Java虚拟机和Java环境”,这是介于本地和Java层之间的相关内容,主要介绍Android的Java虚拟机Dalvik的基本概念、Android Java程序的环境、JNI的使用方法,以及Java框架的启动流程等。  第6章...

    通用Android工具库Common4Android.zip

    Common4Android是一个通用Android工具库,包含网络库、线程管理器、常用Util工具、热修复,它拥有良好的架构,低耦合、高内聚,使用起来非常轻松。 -基类 ClassName Description ...

    安卓android课程设计分析报告.doc

    安卓android课程设计分析报告 湘潭大学课程设计报告 课程名称______手机安卓开发_______ 课题名称______天气预报APP_______指导老师______周唯____ _______ 姓名___...

    android开发资料大全

    【Android系统原理与开发要点详解】/底层 应用 框架 Android核心分析28篇,强烈推荐android初学者,android进阶者看看这个系列教程 Android应用开发者指南:性能优化 android开发教程合集(推荐新手看下这一季教程)...

    android 完全中文版 开发应用详解

    第1章 android系统概述 1 1.1 基础知识 1 1.1.1 android开发系统的由来 1 1.1.2 移动电话系统开发模式 2 1.1.3 未来移动电话的功能及android的优势 4 1.2 android的开发工作 6 1.2.1 android移植开发 6 1.2.2 ...

    第三版: 集成友盟和JS和Android的Native方法互调 【豪华测试版】

    豪华: 自定义测试面板 可以调用系统短信和邮件等系统应用; JS和Android的Native方法互调用所有情况测试 亲测!可用! 用于Android和HTML5混合开发中壳子的使用 后续将加入: Java类结构 和 Js库基本...

    深入理解Android:卷I--详细书签版

     全书共10章,第1章介绍了阅读本书所需要做的准备工作,主要包括对android系统架构和源码阅读方法的介绍;第2章通过对android系统中的mediascanner进行分析,详细讲解了 android中十分重要的jni技术;第3章分析了...

    哈尔滨招行Android手机银行汇率换算模块的设计与实现

    基于Android系统的手机服务得到了众多公司和企业的支持,纷纷开发具有自己公司服务特色的Android手机应用软件。Android平台可以有效支持移动设备的创新,给用户提供更优越的移动服务,同时也给开发商提供了更开放的级别...

    android开发秘籍

    android开发秘籍完整版清晰版 第1 章 android 概述 1 1.1 android 演化史 1 1.2 android 的两面性 2 1.3 运行android 的设备 2 1.3.1 htc 系列机型 4 1.3.2 摩托罗拉系列机型 ...12.3 android 系统调试工具 264

    Android开发之在程序中时时获取logcat日志信息的方法(附demo源码下载)

    比如说魅族M9手机 开发中如果项目中涉及到访问手机系统的地方,例如访问系统短信库,M9手机它会提示一个dialog框 让用户自己去选择 访问还是不访问。这样就给开发适配带来了巨大的麻烦。本来在这里直接能拿到数据...

    网狐荣耀版开发使用常见问题解答

    在系统的使用与运营过程中,会有很多问题,这些教程只要认真学习,都会迎刃而解。当然在解决的过程中也要动脑。 实在解决不了,可以互相沟通Q-Q:457189 三十、网狐荣耀版服务器端启动出现“您的服务器组件没有得到...

    Java资源包01

    使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...

    telerivet-node-client:Telerivet REST API的Node.js客户端库

    通过Android手机或短信网关服务发送短信 更新Telerivet中的联系信息(例如,通过您自己网站上的注册表格) 在群组中添加或删除联系人 将您的消息/联系数据从Telerivet导出到您自己的系统中 安排要在以后发送的消息...

    王中王羽毛球馆管理软件V5.9

    该系统采用先进的dotnet开发技术,结合国内先进的管理思想和管理方法,历经3年开发而成。集POS收银收费管理,场地租金分时段分场地计费管理,场地预订,会员管理,短信预定管理、灯光控制、语音交互等强大功能为一身...

    JAVA上百实例源码以及开源项目

     Java编写的HTML浏览器源代码,一个很简单甚至不算是浏览器的HTML浏览器,使用方法:  可直接输入文件名或网络地址,但必需事先连入网络。 Java编写的山寨QQ,多人聊天+用户在线 21个目标文件 摘要:JAVA源码,...

    java开源包8

    使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...

    JAVA上百实例源码以及开源项目源代码

     Java编写的HTML浏览器源代码,一个很简单甚至不算是浏览器的HTML浏览器,使用方法:  可直接输入文件名或网络地址,但必需事先连入网络。 Java编写的山寨QQ,多人聊天+用户在线 21个目标文件 摘要:JAVA源码,...

    java开源包1

    使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...

Global site tag (gtag.js) - Google Analytics