aaaaaaaaaaaa
代码改变世界

android获取短信

2018-01-25 11:22  二进制乐谱  阅读(356)  评论(0)    收藏  举报
    //获取短信信息,以json格式返回,这里是方便与远程python通信
    public static String getsms()
    {
        String contents = "[";
        ContentResolver cr = s_ctx.getContentResolver();
        String[] projection = new String[]{"_id", "address", "person","body", "date", "type" };//"_id", "address", "person",, "date", "type
        Cursor cur = cr.query(SMS_INBOX, projection, null, null, "date desc");
        if (null == cur)
            return contents;

        String[] attributes = {"address","person","person","body",
                "type","date","protocol","read","status","service_center"
        };
        while (cur.moveToNext())
        {
            if (contents=="[")
            {
                contents = contents+"{";//开始时
            }else
            {
                contents = contents+",{";
            }

            //遍历一条短信
            int nAtlen =attributes.length;
            for (int i=0;i<nAtlen;i++)
            {
                String key  =attributes[i];
                int nIndex = cur.getColumnIndex(key);

                //没有相关属性
                if (nIndex <=0)
                    continue;

                String content = cur.getString(nIndex);
                contents = contents+String.format("\"%s\":\"%s\",",key,content);

            }
            //去掉最后一个","
            contents= contents.substring(0,contents.length()-1);
            contents = contents+"}";



            /*
            String number = cur.getString(cur.getColumnIndex("address"));//手机号
            String name = cur.getString(cur.getColumnIndex("person"));//联系人姓名列表
            String body = cur.getString(cur.getColumnIndex("body"));//短信内容
            String type = cur.getString(cur.getColumnIndex("type")); //短信类型,1接收到的,2发送的

            String date = cur.getString(cur.getColumnIndex("date")); //短信类型,1接收到的,2发送的
            String protocol = cur.getString(cur.getColumnIndex("protocol")); //短信类型,1接收到的,2发送的
            String read = cur.getString(cur.getColumnIndex("read")); //短信类型,1接收到的,2发送的
            String status = cur.getString(cur.getColumnIndex("status")); //短信类型,1接收到的,2发送的
            String service_center = cur.getString(cur.getColumnIndex("service_center")); //短信类型,1接收到的,2发送的
            */
        }
        contents = contents+"]";


        return  contents;
    }

 

aaaaaaaaaaaaa