android_访问系统短信内容提供者

使用内容解析者去访问系统短信的内容提供者

既然我们需要访问系统短信的内容提供者,
首先我们就需要知道口令,还有uriMatcher,和数据库的表结构.
这些都是需要去系统的sms内容提供者里面找的到的(下面会截图出来)

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }


    //添加短信
    public void insert(View v){
        ContentResolver resolver  = getContentResolver(); 

        //path路径不写,默认就是inbox , 可以查看源码得知。
        Uri uri = Uri.parse("content://sms");
        //查看数据库表结构
        ContentValues values = new ContentValues();
        //发信人
        values.put("address", "110");
        //短信内容
        values.put("body","尊敬的张先生,恭喜您荣获好市民奖,希望您在以后的生活中勇于和敢于扶老奶奶过马路。");

        //收到短信的时间
        values.put("date",System.currentTimeMillis());
        //短息的类型 1 : 收到的短信 ,2: 发出去的短信
        values.put("type", 1);

        resolver.insert(uri, values);

        Toast.makeText(this, "添加短息成功", 0).show();
    }

    public void delete(View v){

        ContentResolver resolver  = getContentResolver(); 
        // path路径不写,默认就是inbox , 可以查看源码得知。
        Uri uri = Uri.parse("content://sms");       
        resolver.delete(uri, "address=?", new String[]{"110"});

        Toast.makeText(this, "删除短息成功", 0).show();

    }
}

注意:
1. 短信的写入操作,在4.4之后,系统不允许这么做了。原因是: 系统做了一个设置,只有系统的默认程序才可以对短信进行写入操作。其他应用可以读取短信,但是无法写入。
2. 要求收到到/setting/apps /里面手动修改默认的应用是谁。


  1. 在4.4之后,默认的内容提供者,外部程序无法访问了。要手动打开开关。

    android:exported=”true”

下面是系统的代码
这里写图片描述
这里写图片描述
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值