《第一行代码-Android》学习笔记(十二)

来源:互联网 发布:java 获取键盘输入 编辑:程序博客网 时间:2024/06/06 01:22

1.android虽然提供了持久化的技术,但是还有一种情况需要考虑,就是一个应用如何去访问另一个应用的数据,在4.2版本以前,文件和Sharedpreferences可以供其他应用访问,但是后来被摒弃了。因为安卓有一个更加专门的功能满足这个需求:内容提供技术;

 

2.内容提供器:Content provider 主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能满足被访数据的安全性。

不同于文件存储和Sharedpreferencescontent provider可以选择只对哪一部分数据进行共享,从而不让隐私数据泄露。

 

3.Content provider的两种用法:

a) 使用现有的内容提供器来读取和操作相应的数据

b) 创建自己的内容提供器给我们程序的数据提供外部访问的接口

 

4.ContentResolver的基本用法:

a) 获得它:ContextgetContentResolver()方法可以获得

b) 它有哪些方法:CRUD四种方法,不同于SQLiteDatabase,它的四种方法中传入的是一个Uri对象。

c) Uri对象:内容uri最标准的写法:

content//packagename/tablename

Uri uri=Uri.parse(content//packagename.provider/tablename

);将一个字符串解析成一个Uri对象。

对它的学习可以借助SQLiteDatabase举一反三。

 

5.利用content provider 读取手机联系人:

Cursor cursor =  this.getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URInullnullnullnull);

String name =  cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));

String number =   cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));

0 0
原创粉丝点击