一:什么是ContentPrivider:
一个应用程序可以通过实现一个Content provider的抽象接口将自己的数据共享给其他应用程序,而且Content providers是以类似数据库表的方式将数据暴露。
providers存储和检索数据,通过它可以让所有的应用程序访问到,这也是应用程序之间唯一共享数据的方法。
要想使应用程序的数据公开化,可通过2种方法:
创建一个属于你自己的Content provider或者将你的数据添加到一个已经存在的Content provider中,前提是有相同数据类型并且有写入Content provider的权限。
那么如何通过统一的接口获取其他应用程序共享的数据呢?
Android提供了ContentResolver,外界的程序可以通过ContentResolver接口访问ContentProvider提供的数据。
8.0之后添加权限
compile 'pub.devrel:easypermissions:0.3.0'
二:ContentProvider的使用方法:
1.新建一个ContentProvider类,重写构造方法,insert,delete,getType,onCreate,query,update等方法(根据需要来自行决定重写那些方法)
2.为程序添加一个public static final Uri URI = "content://+<包名>+URIName"静态常量,其他程序通过这个URI来调用此ContentProvider类中的数据
3.为实现数据的存储和读取,起码需要重写onCreate和insert,query方法,下面是重写的具体代码:
public static final Uri URI = Uri.parse("content://andrew.com.contentproviderdemo
.MyContentProviderURI");
SQLiteDatabase database;
@Override
public Uri insert(Uri uri, ContentValues values) {
database.insert("tab","name",values);
return null;
}