android_访问系统短信内容提供者
2016-03-15 17:08
411 查看
使用内容解析者去访问系统短信的内容提供者
既然我们需要访问系统短信的内容提供者,
首先我们就需要知道口令,还有uriMatcher,和数据库的表结构.
这些都是需要去系统的sms内容提供者里面找的到的(下面会截图出来)
注意:
1. 短信的写入操作,在4.4之后,系统不允许这么做了。原因是: 系统做了一个设置,只有系统的默认程序才可以对短信进行写入操作。其他应用可以读取短信,但是无法写入。
2. 要求收到到/setting/apps /里面手动修改默认的应用是谁。
在4.4之后,默认的内容提供者,外部程序无法访问了。要手动打开开关。
android:exported=”true”
下面是系统的代码
既然我们需要访问系统短信的内容提供者,
首先我们就需要知道口令,还有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 /里面手动修改默认的应用是谁。
在4.4之后,默认的内容提供者,外部程序无法访问了。要手动打开开关。
android:exported=”true”
下面是系统的代码
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories