1.从已有的内容提供器来获取数据
获取指定的程序中,指定的表
程序名是com.example.databasetest
表名是book
那么可以通过以下代码解析成Uri对象
Uri uri = Uri.parse("content://com.example.databasetest.provider/book");
例子: 从手机通讯录获取联系人信息:
try { // 查询联系人数据 cursor = getContentResolver().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)); contactsList.add(displayName + "\n" + number); } adapter.notifyDataSetChanged(); } } catch (Exception e) { e.printStackTrace(); } finally { if (cursor != null) { cursor.close(); } }
2.创建一个内容提供器来暴露数据
以类似数据库中表的方式将数据暴露,外部访问与数据库类似,只不过是用URI来表示外界需要访问的“数据库”
链接 http://blog.csdn.net/dmk877/article/details/50387741
总结:
1.创建一个类,extends ContentProvider,重写抽象方法
2.创建UriMatcher对象,并传入参数
static { uriMatcher = new UriMatcher(UriMatcher.NO_MATCH); uriMatcher.addURI(AUTHORITY, "book", BOOK_DIR); uriMatcher.addURI(AUTHORITY, "book/#", BOOK_ITEM); uriMatcher.addURI(AUTHORITY, "category", CATEGORY_DIR); uriMatcher.addURI(AUTHORITY, "category/#", CATEGORY_ITEM); }
3.查询等操作(类似数据库)
传入参数,获取数据库对象,用uriMartcher来匹配传入的uri,不同的匹配执行不同的操作
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { // 查询数据 SQLiteDatabase db = dbHelper.getReadableDatabase(); Cursor cursor = null; switch (uriMatcher.match(uri)) { case BOOK_DIR: cursor = db.query("Book", projection, selection, selectionArgs, null, null, sortOrder); break; default: break; } return cursor; }
相关推荐
"Android 内容提供器详解" Android 内容提供器是 Android 操作系统中的一种核心组件,用于管理和共享应用程序之间的数据。内容提供器允许不同的应用程序共享数据,提供了一个统一的接口来访问和修改数据。 ...
Android 编程之创建自己的内容提供器实现方法 Android 中的内容提供器(Content Provider)是一种机制,允许应用程序共享数据。通过实现自己的内容提供器,可以让其他应用程序访问自己程序中的数据。本文将详细...
移动终端软件开发_04_16_内容提供器.mp4
《第一行Android代码》课件:第七章 跨程序共享数据-探究内容提供器.pptx
在Android开发中,内容提供器(Content Provider)是Android四大组件之一,它是应用程序间数据共享的重要桥梁。"FakeBrowser: Android内容提供器的实现及使用方法研究"这一主题旨在探讨如何创建并运用自定义的内容...
第七章 跨程序共享数据——探究内容提供器 数据持久化技术,包括文件存储、SharedPreferences存储以及数据库存储,都只能在当前应用程序中访问。跨程序数据共享需要用到另一种技术——内容提供器。 7.1 内容提供...
2. **内容解析器(Content Resolver)**:应用程序通过内容解析器与内容提供者进行交互。内容解析器提供了执行CRUD(创建、读取、更新、删除)操作的接口。 3. **内容提供者类(Content Provider Class)**:开发者...
包括自定义相册的实现(画廊、图像切换器、卡片视图、调色板)、影视播放器的实现(视频视图、媒体控制条、阶段实战项目——爱看剧场)、ContentProvider内容组件的用法(内容提供器、内容解析器、内容操作器、内容...
联盟成员: Software Software Software Software Companies Companies Companies Companies 软件提供公司 Ascender Corp. eBay Inc. Esmertec Google Inc. LivingImage LTD. Nuance Communications, Inc. OMRON ...
6.5.4 创建和使用地震内容提供器 6.6 小结 第7章 地图、地理编码和基于位置的服务 7.1 使用基于位置的服务 7.2 使用Test Proyider构建模拟器 7.2.1 更新模拟位置提供器中的位置 7.2.2 创建一个应用程序来管理Test ...
- 应用框架层提供了构建应用的各种API,比如活动管理器(Activity Manager)、内容提供器(Content Provider)等。 - 应用层则是第三方开发的应用程序运行的层面。 2. Linux内核层: - Linux内核为Android提供...
- **应用程序框架**:允许开发者完全访问核心应用程序使用的API框架,简化了组件的重用,并提供了丰富的组件和机制,如视图(Views)、内容提供器(Content Providers)、资源管理器(Resource Manager)、通知管理器...
【网站内容修改器】是一款工具,它允许用户对指定网页的内容进行个性化编辑并保存更改。在互联网上,大多数网页的内容是静态的,即用户只能阅读而不能直接编辑。然而,这款软件提供了一种方法,让用户可以对网页进行...
8. **Content Provider**:内容提供器是Android中数据共享的机制,允许应用之间交换数据,例如联系人、日历等系统数据。 9. **Layout设计**:XML布局文件用于定义用户界面的结构。Android提供了多种布局类型,如...
• 内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或 者共享它们自己的数据 • 资源管理器(Resource Manager)提供 非代码资源的访问,如本地字符串,图形,和布局...
5. **ContentProvider(内容提供器)** ContentProvider用于跨应用共享数据。它提供了一种标准的接口,使得其他应用可以读取或写入特定的数据源,如数据库、文件系统等。使用ContentProvider,开发者可以实现数据的...
除了使用 URL 类,Java 还提供了 URLConnection 类来获取网页内容。URLConnection 类表示到 URL 所引用的远程对象的连接。通过使用 URLConnection 类,可以获取指定 URL 的内容,并读取输入流。在上面的代码中,我们...