Android学习笔记—— 九 、ContentProvider的基础使用方法

1. 使用ContentProvider访问其他程序中的数据

想要访问其他程序的数据需要通过ContentResolver来实现,所以首先需要通过Context中的getContentResolver方法获取到ContentResolver实例,然后通过query方法查询数据,insert添加数据,update更新数据,delete删除数据。

这些方法基本和SQLite中的方法一样,不过这里不需要那么多的参数,也不需要传入表名参数。作为代替,我们需要传入一个Uri参数用来寻找数据库,这个参数被称为内容URI,它给内容提供器中的数据建立了唯一标识符。

特殊的,有些系统自带应用比如通讯录的Uri参数是已经被封装好的,可以直接调用不需要解析。

内容URI由两部分组成:authority和path。authority用于区分不同的应用程序,一般使用应用程序的包名,path则是对同一应用程序中不同的表做区分的。最后一个标准的内容URI还需要在前面加上协议声明,比如这样:content://com.example.test/table1


  1. 查询数据
			 //和SQLite一样使用Cursor对象存储调用getContentResolver().query方法查询的数据,这里的query方法只有五个参数:
            /**
             * 1. Uri对象,一般是内容URI字符串通过Uri.parse方法转换为Uri对象,格式:
             * 2. 要查询的列名
             * 3. 查询约束条件
             * 4. 为约束条件的占位符提供那个具体的值
             * 5. 指定查询结果的排序方式
             */
			Uri uri = Uri.parse("content://com.example.test/table1");
			Cursor cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);
			
            //取出查询返回的数据
            if (cursor != null) {
                while (cursor.moveToNext()) {
					//使用列名获取想要查询的数据
                    String column1 = cursor.getString(cursor.getColumnIndex("column1"));
                }
                cursor.close();
        	}
  1. 添加数据
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值