Android内容提供器

内容提供器用于应用程序间的数据提供和获取

比较常见的操作就是读取联系人,读取短信等功能

 

标准URI

Android内容提供器_第1张图片
Android中的内容Uri,给内容提供器中的数据建立了唯一标识符

scheme+authority+path(+id)  

例如:content://com.example.app.provider/table1,content://com.example.app.provider/table1/1

内容Uri对应的MIME类型:

路径结尾:vnd.android.cursor.dir/vnd.com.example.provider.table1

id结尾:vnd.android.cursor.item/vnd.com.example.provider.table1
 

ContentResolver访问内容提供器中的数据

ContentResolver contentResolver=getContentResolver();

ContentResolver提供了数据的CRUD,insert,update,delete,query

示例代码:读取联系人姓名和电话

        ContentResolver contentResolver=getContentResolver();
        Cursor cursor=contentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,null,null,null);
        if (cursor!=null){
            while(cursor.moveToNext()){
                String displayName=cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
                String number=cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                Log.i(TAG, "onCreate: "+displayName+" "+number);
            }
        }

P.s.读取联系人信息要动态获取READ_CONTACTS权限

 

提供自己的内容提供器ContentProvider

新建一个类继承ContentProvider方法,覆写6个方法

用UriMatch类实现匹配Uri的功能

写完记得在AndroidManifest中注册

(用到的时候请自行研究,这里简单说明)

你可能感兴趣的:(Android概念)