相关文章

Broadcast Receiver(广播接收者)
什么是Service(服务)?
Android开发-Intent(意图)

为什么需要Content Provider(内容提供者)?简单来说,就是另外一个应用想要访问此应用中私有的数据库,此应用中提供了一个中间对象来供其他应用访问,这个中间对象就是内容提供者。

1.1 内容提供者概述

内容提供者组件通过请求从一个应用程序向其他的应用程序提供数据。这些请求由类 ContentResolver 的方法来处理。内容提供者可以使用不同的方式来存储数据。数据可以被存放在数据库,文件,甚至是网络。有时候需要在应用程序之间共享数据。这时内容提供者变得非常有用。

内容提供者可以让内容集中,必要时可以有多个不同的应用程序来访问。内容提供者的行为和数据库很像。可以查询,编辑它的内容,使用insert(), update(), delete() 和 query() 来添加或者删除内容。多数情况下数据被存储在 SQLite 数据库。

内容提供者被实现为类 ContentProvider 类的子类。需要实现一系列标准的API,以便其他的应用程序来执行事务。

1.2 创建内容提供者

1.创建自己的内容提供者的简单步骤。
第一步:继承类 ContentProviderbase 来创建一个内容提供者类。
第二步:定义用于访问内容的你的内容提供者URI地址。
第三步:创建数据库来保存内容。通常,Android 使用 SQLite数据库,并在框架中重写onCreate()方 法来使用 SQLiteOpenHelper 方法创建或者打开提供者的数据库。当应用程序被启动,它的每个内容提 供者的onCreate()方法都将在应用程序主线程中被调用。
第四步:使用<provider…/>标签在 AndroidManifest.xml中注册内容提供者。

2.为了让内容提供者正常工作,需要在类 ContentProvider 中重写的一些方法,如下图所示。

onCreate():当提供者被启动时调用。
query():该方法从客户端接受请求,结果是返回指针(Cursor)对象。
insert():该方法向内容提供者插入新的记录。
delete():该方法从内容提供者中删除已存在的记录。
update():该方法更新内容提供者中已存在的记录。
getType():该方法为给定的URI返回元数据类型。

1.3 实战

1.创建一个app读取手机短信:
第一步:创建一个安卓工程,定义一个按钮,如下图所示。

第二步:在MainActivity中绑定按钮,并实现监听,如下图所示。

第三步:在监听中实现读取短信信息的代码,如下图所示。

第四步:安装到雷电模拟器并观看控制台输出,记得在短信里添加点信息,否则可能没有信息出现。

小结
主要分享了内容提供者的概念,内容提供者被实现的方法,创建内容提供者,详细步骤以及创建过程中的概念问题。

如果你也对安卓逆向感兴趣。可以加下方的群,大家一起讨论问题,或者扫描下方二维码,关注回复 “安卓逆向” 获取免费教程

安卓逆向交流学习:342647370
vx:yijin1108an

Content Provider (内容提供者)相关推荐

  1. Android四大组件Content Provider使用实例

    本文包含两个应用程序,其中,第一个应用程序命名为ArticlesProvider,它使用了SQLite数据库来维护一个文章信息列表,同时,它定义了访问这个文章信息列表的URI,这样,我们就可以通过一个 ...

  2. Android 内容提供者(Content provider)

    原文地址:http://justsee.iteye.com/blog/936612 当应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据.虽然 ...

  3. Android开发之Glide加载U盘音乐的专辑图片的方法 | Glide加载content:图片 | Glide加载内容提供者 | Glide加载MP3专辑图片 | Glide加载音乐专辑图片

    老套路先(献)上图 1.说下核心,Glide提供了直接加载内容提供者的方法用于显示图片 2.Glide加载的图片的格式如下 content://com.yhsh.app.media.server.us ...

  4. android 53 ContentProvider内容提供者

    ContentProvider内容提供者:像是一个中间件一样,一个媒介一样,可以以标准的增删改差操作对手机的文件.数据库进行增删改差.通过ContentProvider查找sd卡的音频文件,可以提供标 ...

  5. android100 自定义内容提供者

    #ContentProvider,就是来操作数据的,增删改查, * 四大组件之一 * 应用的数据库是不允许其他应用访问的 * 内容提供者的作用就是让别的应用访问到你的数据库 * 内容提供者的作用:把私 ...

  6. android 组件(activity,service,content provider,broadcast receiver,intent)详解

    Android应用程序由若干个不同类型的组件组合而成,每一个组件具有其特定的安全保护设计方式,它们的安全直接影响到应用程序的安全.Android应用程序组件的主要类型有:活动(Activity),服务 ...

  7. 2020-11-12(内容提供者,内容解析者,内容观察者)

    内容提供者实现步骤 a.写一个类继承ContentProvider 重写onCreat query delete insert getType b.在清单文件中声明对应的provider节点 auth ...

  8. Android应用安全之Content Provider安全

    android平台提供了Content Provider,将一个应用程序的指定数据集提供给其它应用程序.这些数据可以存储在文件系统.SQLite数据库中,或以任何其它合理的方式存储.其他应用可以通过C ...

  9. 安卓学习 之 ContentResolver内容提供者(七)

    简介 Android持久化技术一章中所保存的数据都只能在当前应用程序中访问,但跨程序数据共享是由Content Provider提供的,譬如说:电话薄.短信.媒体库中的信息. 一.基本用法 构建内容U ...

最新文章

  1. JAVA数据库:MySQL入门
  2. 转:典型开源3D引擎分类比较
  3. 函数 —— popen() fscanf() sprintf() 执行shell命令并获取结果
  4. JavaScript函数与Window对象
  5. Hadoop学习之以全分布模式部署及问题
  6. buu-crypto-yxx
  7. 万字解读 | SaaS 行业,如何衡量与优化关键指标?
  8. 使用JXL.jar实现JAVA对EXCEL的读写操作
  9. 使用Lambda的装饰设计模式
  10. Java生产环境下性能监控与调优详解 第7章 JVM层GC调优
  11. C# - 多线程(基础)
  12. 是不是人老了,子女都不愿和老人相处?
  13. ExtJS4.2学习(11)——高级组件之Grid
  14. html设置自定义光标,pixi.js 自定义光标样式
  15. 阶段3 2.Spring_02.程序间耦合_3 程序的耦合和解耦的思路分析1
  16. 用ASP.NET刷新页面的几种有效方法
  17. 小米球(Ngrok)实现内网穿透,让外网可以进行访问本地部署的 API
  18. EPIC/Steam 手柄没反应问题解决办法
  19. Android 9.0 解决无法通过adb install 安装persistent app
  20. [观点]中国传统文化的遗失清单上我们丢掉了什么(作者:侯虹斌)

热门文章

  1. 计算机键盘输入法基础知识,电脑打字入门基础知识
  2. VLOOKUP函数最常用的10种用法
  3. Java 中 switch 的用法
  4. 静态变量与非静态变量的区别
  5. java 加密word_Java 加密和解密PDF文档
  6. iis 6.0部署asp网站
  7. vscode环境配置:附注有参考链接,便于下载软件。
  8. MapX编程详解(C++)----MapX发布技术
  9. 苹果 IOS 早期版本 NDEF的读写问题 C#
  10. 【IOS开发进阶系列】动画专题