内容提供者可以实现应用间查询数据库的需求

一.在提供数据库访问的应用设置内容提供者

  1. public class AccountProvider extends ContentProvider {
  2. static final int QUERYSUCCESS=0;
  3.  
  4. private static final UriMatcher sURIMatcher = new UriMatcher(UriMatcher.NO_MATCH);
  5.  
  6. static {
  7. sURIMatcher.addURI("com.eason.provider","query",0);
  8. }
  9. /*
  10. *selectionArg查询参数
  11. *selection查询条件
  12. */
  13. @Override
  14. public Cursor query(Uri uri,String[] projection,String selection,String[] selectionArgs,String sortOrder) {
  15. int code=sURIMatcher.match(uri);
  16. if(code==QUERYSUCCESS){
  17. SQLiteDatabase db =new MyOpenHelper(getContext()).getReadableDatabase();
  18. Cursor cursor=db.query("info",projection,selection,selectionArgs,null,null,null);
  19. return cursor;
  20. }else throw new IllegalArgumentException("路径有问题啊兄弟");
  21. }
  22.  
  23. }
  • 记得在清单文件中配置组件
  • 在清单文件里provider节点的exported属性设置为true,没有设置将会报错
  • exported属性作用:是否支持其它应用调用当前组件。默认值:如果包含有intent-filter 默认值为true; 没有intent-filter默认值为false.

二.在访问数据库的应用内实现内容解释者

  1. protected void onCreate(Bundle savedInstanceState) {
  2. super.onCreate(savedInstanceState);
  3. setContentView(R.layout.activity_main);
  4.  
  5. ContentResolver cr=getContentResolver();
  6. Uri uri=Uri.parse("content://com.eason.provider/query");
  7. Cursor cursor=cr.query(uri,null,null,null,null);
  8. if (cursor.getCount()>0&&cursor!=null){
  9. while(cursor.moveToNext()){
  10. System.out.println(cursor.getString(1));
  11. System.out.println(cursor.getString(2));
  12. }
  13. }
  14. }
    1. 执行query操作时,设置uri要根据内容提供者中的sURIMatcher.addURI("com.eason.provider","query",0)来写.

Android基础之内容提供者的实现的更多相关文章

  1. Android中的内容提供者

    Android中的内容提供者 为什么需要内容提供者 为了跨程序访问数据.试想如果在App-1中创建了一个私有数据库,App-2是不能直接访问的.因为权限不够,虽然可以使用chmod 777来修改权限, ...

  2. Android学习---通过内容提供者(ContentProvider)操作另外一个应用私有数据库的内容

    一.什么是ContentProvider? ContentProvider直译过来就是内容提供者,主要作用就是A应用提供接口给B应用调用数据,和之前介绍的sharedPreference和直接开放文件 ...

  3. android 53 ContentProvider内容提供者

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

  4. Android开发13——内容提供者ContentProvider的基本使用

    一.ContentProvider简介 当应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据.ContentProvider为存储和获取数据提 ...

  5. Android基础笔记(十三)- 内容提供者原理和简单使用

    为什么要有内容提供者 内容提供者的工作原理 使用内容解析者对内容提供者进行增删改查操作 利用内容提供者和内容解析者备份手机短信 利用内容提供者插入短信 为什么要有内容提供者 内容提供者技术的目的是: ...

  6. Android使用内容提供者实现增删改查操作

    Android使用内容提供者实现增删改查操作 这里需要建立两个项目:SiYouShuJuKu(使用内容提供者暴露相关的操作),DQDYGApplication(使用内容解析者对第一个应用进行相关的解析 ...

  7. Android开发14——监听内容提供者ContentProvider的数据变化

    一.提出需求 有A,B,C三个应用,B中的数据需要被共享,所以B中定义了内容提供者ContentProvider:A应用修改了B应用的数据,插入了一条数据.有这样一个需求,此时C应用需要得到数据被修改 ...

  8. 内容提供者 ContentResolver 数据库 示例 -2

    MainActivity public class MainActivity extends ListActivity {     // 访问内容提供者时需要的主机名称     public stat ...

  9. Android应用开发基础之九:内容提供者(ContentProvider)

    内容提供者 应用的数据库是不允许其他应用访问的 内容提供者的作用:就是让别的应用访问到你的数据库 自定义内容提供者,继承ContentProvider类,重写增删改查方法,在方法中写增删改查数据库的代 ...

随机推荐

  1. ElasticSearch权威指南学习(分布式集群)

    空集群 只有一个空节点的集群 一个节点(node)就是一个Elasticsearch实例,而一个集群(cluster)由一个或多个节点组成,它们具有相同的cluster.name,它们协同工作,分享数 ...

  2. Unicode 字符串排序规则(一):如何确定单个字符的顺序

    一.一个具体的例子引发的问题 当今是国际化的时代,多种语言可能同时显示在屏幕上.比如一个人可能喜欢听华语歌.英文歌.韩文歌和日语歌,又比如他的联系人中有中国人.英国人.日本人.韩国人以及有英文名字的中 ...

  3. Swift 里 Dictionary

    Dictionary uses two storage schemes: native storage and Cocoa storage. 只看 native storage 的,也就是和 OC 无 ...

  4. Spring Boot+redis存储session,满足集群部署、分布式系统的session共享

    本文讲述spring-boot工程中使用spring-session机制进行安全认证,并且通过redis存储session,满足集群部署.分布式系统的session共享. 原文链接:https://w ...

  5. Android_support_v4和V7

    google提供了Android Support Library package 系列的包来保证来高版本sdk开发的向下兼容性,即我们用4.x开发时,在1.6等版本上,可以使用高版本的有些特性,如Fr ...

  6. salesforce lightning零基础学习(九) Aura Js 浅谈二: Event篇

    上一篇介绍了Aura Framework中 Component类的部分方法,本篇将要介绍Event常用的方法. 1. setParam (String key , Object value):设置事件 ...

  7. docker compose示例

    version: ' services: game-server: image: /tomcat: container_name: 'game-server' ports: - '8019:8019' ...

  8. windows下mongodb基础玩法系列一介绍与安装

    windows下mongodb基础玩法系列 windows下mongodb基础玩法系列一介绍与安装 windows下mongodb基础玩法系列二CURD操作(创建.更新.读取和删除) windows下 ...

  9. Hive基础之绪论

    我本人大概是从2013年12月份开始接触Hadoop,因为公司当时要开始处理一些数据量比较大的数据,现有的通过程序去统计数据的方式在效率方面渐渐不能满足业务需求,所以便开始了Hadoop技术的探索,即 ...

  10. js------数组随机排序和去重

    let arr = ['g', 'b', 'c', 'd', 'e', 'a', 'g', 'b', 'c']; // 数组随机排序(原数组被修改)Array.prototype.randomSort ...