Content Provider实现跨应用数据库共享

本文介绍如何使用Content Provider实现Android应用间的数据库共享。通过创建Content Provider,设置正确的URI,应用A可以允许应用B访问其数据库,进行读取和写入操作,从而实现数据共享。
摘要由CSDN通过智能技术生成

调用相册,调用音乐等(上一遍已经介绍了)。这是怎么实现的呢?其实就是ContentProvider的功劳。系统封装好了ContentProvider,而我们只需要调用就行。
而现在我们需要自己对应用建立ContentProvider,以供别的应用访问。
结合实例:应用A要访问应用B 的数据库。

1:新建ContentProvider
1:new--->Other--->Content Provider ,新建时:URI Authorities代表主机名,组成建议这样的:包名+自定义名。
新建完成后系统会重写多个方法,接下来我们需要做的就是对这些方法做具体的实现。

2:实现方法:
实现以下方法,前提需要实现了SQLiteOpenHelper等创建数据库的操作,具体可参我的一篇文章(下面的例子也就是基于这篇文章里所创建的数据库):已创建的数据库

直接上代码:

假设应用为 A

public class MyContentProvider extends ContentProvider {
   
    private SQLiteUtil sqLiteUtil;
    //根据uri匹配
    private static final UriMatcher MATCHER = new UriMatcher(UriMatcher.NO_MATCH);
    static{
        //可有多个主机名,以便访问多个表
        MATCHER.addURI("com.index.test.sqlitetest.conp","user_info",1);//查询全表数据
        MATCHER.addURI("com.index.test.sqlitetest.conp","user_info/#",2);//根据唯一标识符查询
    }
    public MyContentProvider() {
    }

    @Override
    public String getType(Uri uri) {

        //系统回调,该方法会区分查询是全表查询还是单条数据查询,写法固定
        switch (MATCHER.match(uri)){
            case 1:
                return "vnd.android.cursor.dir/user_info";//必须以vnd开头
            case 2:
                return 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值