Android基础之Content Provider(待完善)
Content Provider是Android四大组件之一.使用前需要在manifest.xml中进行注册
主要是封装数据,为存储和获取数据提供统一的接口,可以在不同的应用程序之间进行数据的共享
需要调用数据时,用一个ContentResolver对象作为类似客户端来跟ContentProvider的实例进行交互.
如果你不需要让你的应用程序和其他应用程序共享数据,则不用写自己的ContetProvider类
要接触一定数据的provider时,需要在manifest.xml中声明权限
调用系统的Content Provider
比如调用联系人信息
String [] projection={Contacts._ID,Contacts.DISPLAY_NAME};
//首先获得ContentResolver对象,调用其查询query方法()
Cursor c=getContentResolver().query(Contacts.CONTENT_URI,projection,null,null,null);
//其query方法的参数是Contacts.CONTENT_URI 这个字符串其实为content://com.android.contacts/contacts
打电话,联系人,短信等都是android的系统应用,这些应用放在了/data/data目录下 字符串解析找到了这个包里的数据
//第二个参数是决定选定了哪些数据项需要返回 相当于SQL语句中的select a,b,c
//第三个参数为决定哪些行,相当于WHERE语句
//第四个参数是排序
把Cursor安排给以个SimpleCursorAdapter就能简单的显示出这些信息了
也可以从c.getString(c.getColumnIndex(Contacts.DISPLAY_NAME));获得其具体的值进行处理
执行插入,更新,删除操作同样
ContentValues cv=new ContentValues()
cv.put(Contacts.DISPLAY_NAME,"John Smith");
cv.putNull(Contacts.PHOTO);
getResolver.insert(); update() delete()等操作
这里的操作需要对其数据库表结构比较了解,需要仔细添加