短信修改器核心代码

1.URL

private final String SMS_URI_ALL   = "content://sms/";        
    private final String SMS_URI_INBOX = "content://sms/inbox";      
    private final String SMS_URI_SEND  = "content://sms/sent";      
    private final String SMS_URI_DRAFT = "content://sms/draft"; 

2.获取短信

 /* 
     * 获取指定类型短信 
     */  
    public List<Map<String, Object>> getSmsInPhone()      
    {      
        try{      
            ContentResolver cr = getContentResolver();      
            String[] projection = new String[]{"_id", "address", "person",       
                    "body", "date", "type"};      
            Uri uri = Uri.parse(url);      
            Cursor cur = cr.query(uri, projection, null, null, "date desc");      

            if (cur.moveToFirst()) {  
                long id;  
                String name;       
                String phoneNumber;             
                String smsbody;      
                String date;      
                String type;      

                int idColumn = cur.getColumnIndex(StaticValues._ID);  
                int nameColumn = cur.getColumnIndex(StaticValues.PERSON);      
                int phoneNumberColumn = cur.getColumnIndex(StaticValues.ADDRESS);      
                int smsbodyColumn = cur.getColumnIndex(StaticValues.BODY);      
                int dateColumn = cur.getColumnIndex(StaticValues.DATE);      
                int typeColumn = cur.getColumnIndex(StaticValues.TYPE);      

                do{   
                    id = cur.getLong(idColumn);  
                    name = cur.getString(nameColumn);                   
                    phoneNumber = cur.getString(phoneNumberColumn);      
                    smsbody = cur.getString(smsbodyColumn);      

                    SimpleDateFormat dateFormat = new SimpleDateFormat(      
                            "yyyy-MM-dd hh:mm:ss");      
                    Date d = new Date(Long.parseLong(cur.getString(dateColumn)));      
                    date = dateFormat.format(d);      

                    int typeId = cur.getInt(typeColumn);      
                    if(typeId == 1){      
                        type = "接收";      
                    } else if(typeId == 2){      
                        type = "发送";      
                    }else if(typeId == 3){      
                        type = "草稿";      
                    } else {      
                        type = "";      
                    }  
                    if(smsbody == null)   
                        smsbody = "";  
                    Map<String, Object> map = new HashMap<String, Object>();  
                    map.put(StaticValues._ID, id);  
                    map.put(StaticValues.PERSON, name);  
                    map.put(StaticValues.ADDRESS, phoneNumber);  
                    map.put(StaticValues.BODY, smsbody);  
                    map.put(StaticValues.DATE, date);  
                    map.put(StaticValues.TYPE, type);  
                    list.add(map);  
                }while(cur.moveToNext());    
                cur.close();  
            }     
        } catch(SQLiteException ex) {      
            Log.d("SQLiteException in getSmsInPhone", ex.getMessage());      
        }      
        return list;      
    }     

3.修改短信

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
                try {
                    date = sdf.parse(editText4.getText().toString());
                } catch (ParseException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } 

                cv.put(StaticValues.BODY, editText3.getText().toString());  
                cv.put(StaticValues.DATE, date.getTime());  
                context.getContentResolver().update(Uri.parse(SMS.url),   
                        cv, StaticValues._ID + "=?", new String[]{id+""});

4.权限

 <uses-permission android:name="android.permission.READ_SMS" />
    <uses-permission android:name="android.permission.WRITE_SMS" />

5.示例代码,请下载http://download.csdn.net/detail/drothy_qin/9508824

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android手机短信/彩信管理-包括了已接收短信修改,   进入初始页面 EntryPage,传递数据:   1 标题,即该viewtitem的名称   2 类型,短信为0,彩信为1,所有会话为2,   点击短信时 传递标题“短信”,传递0,进入ListBoxPage   点击彩信时 传递标题“彩信”,传递1,进入ListBoxPage   点击所有会话时 传递标题“所有会话”,传递2,传递uri ,进入ListConversationPage   进入收信息分类页面 ListBoxPage,接收标题,并设置标题:   接收类型,根据类型设置当前类型protocol   执行动作:   1 点击收件箱时,传递“收件箱”,传递类型,传递uri,进入ListConversationPage   2 点击收件箱时,传递“发件箱”,传递类型,传递uri,进入ListConversationPage   3 点击收件箱时,传递“草稿箱”,传递类型,传递uri,进入ListConversationPage   4 长按viewtiem时会出现清空菜单   传递参数:   1 标题,当前itemview的名称   2 类型,短信为0,彩信为1   3 Uri,要搜索的content provider uri   进入会话页面 ListConversationPage,接收标题,并设置标题;接收类型,付给当前类型protocol;接收Uri,付给当前Uri。   执行动作:   1搜索uri下的所有会话,得到会话thread_id, 短信数量msg_count,最新短信内容snippet,姓名name,日期date(除thread_id外,其他不能直接得到,要有操作,msg_count可以通过group by thread_id得到,snippet可以通过orderby date得到,name可以通过电话address搜索电话联系人得到)   2 长按viewtiem,会出现“清空”菜单   传递参数:   1 Thread_id,会话id   2 Uri,要搜索的uri   3 传递标题,当前viewitem的名称,即name   4 传递类型 protocol   还有更多功能请参见源码中的文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值