Android内容提供器

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

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

 

标准URI


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中注册

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值