第七章 跨程序共享数据一探究内容提供器 主讲:王海
第七章 跨程序共享数据--探究内容提供器 主讲:王海
本章目标 ·了解ContentProvider类和ContentResovler类 能够开发ContentProvider程序 ·能够操作系统的ContentProvider Android软件开发 主讲:王海
Android软件开发 主讲:王海 本章目标 • 了解ContentProvider类和ContentResovler类 • 能够开发ContentProvider程序 • 能够操作系统的ContentProvider
ContentProvider类 ContentProvider是Android应用的四大组件之 方法 功能描述 public abstract boolean onCreate() 创建ContentProviderh后会被调用 public abstract Uri insert(Uri uri,Content Values values))根据Uri插入values对应的数据 public abstract int delete(Uri uri,String selection,String[]selectionArgs) 根据Uri删除selection条件所匹配的全部记录 public abstract int update(Uri uri,Content Values values,String selection,String[]selectionArgs) 根据Uri修改selection条件所匹配的全部记录 public abstract Cursor query(Uri uri,String[] 根据Uri查询selection条件所匹配的全部记录,其中 projection,String selection,String[] ojection是一个列名列表,表明只选出指定的数据 selectionArgs,String sortOrder) 列 public abstract String getType(Uri uri) 获得当前Ui所代表的MME数据类型 public final Context getContext() 获得Context>对象 Android软件开发 主讲:王海
Android软件开发 主讲:王海 ContentProvider类 • ContentProvider是Android应用的四大组件之一 • 用于存储、检索数据,并向应用程序提供访问数据的接口 方法 功能描述 public abstract boolean onCreate() 创建ContentProviderh后会被调用 public abstract Uri insert(Uri uri,ContentValues values) 根据Uri插入values对应的数据 public abstract int delete(Uri uri,String selection,String[] selectionArgs) 根据Uri删除selection条件所匹配的全部记录 public abstract int update(Uri uri,ContentValues values,String selection,String[] selectionArgs) 根据Uri修改selection条件所匹配的全部记录 public abstract Cursor query(Uri uri,String[] projection,String selection,String[] selectionArgs,String sortOrder) 根据Uri查询selection条件所匹配的全部记录,其中 projection是一个列名列表,表明只选出指定的数据 列 public abstract String getType(Uri uri) 获得当前Uri所代表的MIME数据类型 public final Context getContext() 获得Context对象
Uri Uri是ContentProvider对外提供一个自身数据集的唯一标识 【语法】 content://数据路径/标识ID(可选) "content:/俨是ContentProvider规定的协议,用来标识ContentProvider所管理的 schema;所有的Uri都以"content:/"开头; "数据路径”用于查找所要操作的ContentProvider; “标识D”是可选的,标识不同数据资源,当访问不同资源时,该D是动态改变的。 【示例】返回设备中存储的所有图片的Ui content://media/internal/images Android软件开发 主讲:王海
Android软件开发 主讲:王海 Uri • Uri是ContentProvider对外提供一个自身数据集的唯一标识 • 【语法】 “content://”是ContentProvider规定的协议,用来标识ContentProvider所管理的 schema;所有的Uri都以“content://”开头; “数据路径”用于查找所要操作的ContentProvider; “标识ID”是可选的,标识不同数据资源,当访问不同资源时,该ID是动态改变的。 – 【示例】返回设备中存储的所有图片的Uri content://数据路径/标识ID(可选) content://media/internal/images
ContentResolver类 ContentResolver是内容解析器,提供了对ContentProvider数据 进行查询、插入、修改和删除等操作的方法 方法 功能描述 insert(Uri uri,ContentValues values) 向Uri对应的ContentProvide中插入values对应的数据 delete(Uri uri,String where,String]selectionArgs) 删除Uri对应的ContentProvide中where匹配的数据 update(Uri uri,ContentValues values,String where,String[] 更新Uri对应的ContentProvide中where匹配的数据 selectionArgs) query(Uri uri,String]projection,String selection,String 查询Uri对应的ContentProvider中wherel匹配的数据 selectionArgs,String sortOder) Android软件开发 主讲:王海
Android软件开发 主讲:王海 ContentResolver类 • ContentResolver是内容解析器,提供了对ContentProvider数据 进行查询、插入、修改和删除等操作的方法 方法 功能描述 insert(Uri uri,ContentValues values) 向Uri对应的ContentProvide中插入values对应的数据 delete(Uri uri,String where,String[] selectionArgs) 删除Uri对应的ContentProvide中where匹配的数据 update(Uri uri,ContentValues values,String where,String[] selectionArgs) 更新Uri对应的ContentProvide中where匹配的数据 query(Uri uri,String[] projection,String selection,String[] selectionArgs,String sortOder) 查询Uri对应的ContentProvide中where匹配的数据
开发ContentProvider程序步聚 创建一个ContentProvider子类,并实现query0、insert()、update0和 delete()等方法; ②在AndroidManifest.xml配置文件中注册ContentProvider,并指定 android:authorities)属性; ③使用ContentProvider。Activity和Service等组件都可以获取 ContentProviderx对象,并调用该对象相应的方法进行操作。 Android软件开发 主讲:王海
Android软件开发 主讲:王海 开发ContentProvider程序步骤 ① 创建一个ContentProvider子类,并实现query()、insert()、update()和 delete()等方法; ② 在AndroidManifest.xml配置文件中注册ContentProvider,并指定 android:authorities属性; ③ 使用ContentProvider。Activity和Service等组件都可以获取 ContentProvider对象,并调用该对象相应的方法进行操作
管理联系人 ,Android系统用于管理联系人的ContentProvider的Uri有以下三种: √ContactsContract..Contacts.CONTENT_URI:管理联系人的Uri ContactsContract.CommonDataKinds.Phone.CONTENT URI: 联系人的电话Uri √ContactsContract.CommonDataKinds.Email.CONTENT_URI:管理联 系人的E-mail的Uri Android软件开发 主讲:王海
Android软件开发 主讲:王海 管理联系人 • Android系统用于管理联系人的ContentProvider的Uri有以下三种: ContactsContract.Contacts.CONTENT_URI:管理联系人的Uri ContactsContract.CommonDataKinds.Phone.CONTENT_URI:管理 联系人的电话Uri ContactsContract.CommonDataKinds.Email.CONTENT_URI:管理联 系人的E-mail的Uri
管理多媒体 Android提供了Camera API来支持拍照、拍摄视频 多媒体ContentProvider的Uri: √MediaStore.Audio.Media.EXTERNAL CONTENT URI:存储在外部SD存储卡中 的音频文件的Uri √ MediaStore.Audio.Media.INTERNAL CONTENT URI:存储在手机内存中的音频 文件的Uri √ MediaStore.Images.Media.EXTERNAL CONTENT URI:存储在外部SD存储卡中 的图片文件的Uri MediaStore..Images.Media.INTERNAL CONTENT URI:存储在手机内存中的图 片文件的Uri MediaStore.Video.Media.EXTERNAL CONTENT URI:存储在外部SD存储卡中 的视频文件的Uri MediaStore..Video.Media.INTERNAL CONTENT URI:存储在手机内存中的视频 文件的Uri Android软件开发 主讲:王海
Android软件开发 主讲:王海 管理多媒体 • Android提供了Camera API来支持拍照、拍摄视频 • 多媒体ContentProvider的Uri: MediaStore.Audio.Media.EXTERNAL_CONTENT_URI:存储在外部SD存储卡中 的音频文件的Uri MediaStore.Audio.Media.INTERNAL_CONTENT_URI:存储在手机内存中的音频 文件的Uri MediaStore.Images.Media.EXTERNAL_CONTENT_URI:存储在外部SD存储卡中 的图片文件的Uri MediaStore.Images.Media.INTERNAL_CONTENT_URI:存储在手机内存中的图 片文件的Uri MediaStore.Video.Media.EXTERNAL_CONTENT_URI:存储在外部SD存储卡中 的视频文件的Uri MediaStore.Video.Media. INTERNAL_CONTENT_URI:存储在手机内存中的视频 文件的Uri
本章总结 ContentProvider是Android应用的四大组件之一 ContentProvider类提供了insert(0、delete(0、update(0、query(0和 getType(0等操作数据的抽象方法 Uri是每一个ContentProvideri都对外提供一个自身数据集的唯一标识 在开发过程中通过ContentResolver来间接操作ContentProvider所提供的数 据 每个应用程序的上下文都有一个默认的ContentResolver实例对象,可以调用 getContentResolver()方法获取ContentResolver3实例对象 Android软件开发 主讲:王海
Android软件开发 主讲:王海 本章总结 • ContentProvider是Android应用的四大组件之一 • ContentProvider类提供了insert()、delete()、update()、query()和 getType()等操作数据的抽象方法 • Uri是每一个ContentProvider都对外提供一个自身数据集的唯一标识 • 在开发过程中通过ContentResolver来间接操作ContentProvider所提供的数 据 • 每个应用程序的上下文都有一个默认的ContentResolver实例对象,可以调用 getContentResolver()方法获取ContentResolver实例对象