笔记_第七章 内容提供器

第七章 内容提供器

  • 运行时权限申请

    • 通过ContextCompat.checkSelfPermission()方法 判断用户是否给某个危险权限授权。方法接收两个参数,第一个是Context,第二个是具体的权限名。比如拨打电话的权限名是Manifest.permission.CALL_PHONE,然后使用返回值和PackageManager.PPERMISSION_GRANTED做比较,相等表示已经授权

    • 如果没有授权,则调用ActivityCompat.requestPermissions()方法向用户申请权限,方法接收三个参数,第一个参数要求是Activity的实例,第二个是String数组,存放要申请的权限名(Manifest.permission.XXXX_XXX),第三个是请求码(int),要唯一。对应了一个回调方法onRequestPermissionResult,不管用户是否同意授权,都会调用这个回调的方法,并把授权的结果传递进来,我们可以通过这个结果再进行分支操作

  • 访问其他程序中的数据

    • 内容提供器的两种用法:

      • 使用现有的内容提供器来读取和操作相应程序中的数据

      • 创建自己的内容提供器给自己的应用程序的数据提供访问接口

    • ContentResolver :访问内容提供器的数据

      • 获取实例:Context.getContentResovler()方法,实例提供了对数据进行CRUD操作的方法

        • insert

        • update

        • delete

        • query

      • 内容URI:内容URI给内容提供器的数据建立了唯一的标识符。他主要由两部分组成

        • authority:用于对不同应用程序作区分,一般都会采用包名的方式来命名

        • path:用于对同一应用程序的不同的表做区分,

        • 最后需要在URI的开头加上协议声明:content://

  • 自定义ContentProvider

    • 编写一个类继承ContentProvider,重写全部方法

      • onCreate:初始化内容提供器的时候调用,通常对数据库的创建和升级等操作,返回true表示初始化成功,返回false表示失败。当存在ContentResolver尝试访问我们程序中的数据时,提供器才会被初始化

      • 在静态代码块给UriMatcher addUri()添加匹配的规则,有三个参数

        • authority

        • path

        • resultCode

        • 通过UriMatcher实例的match方法返回的resultCode判断访问者期望访问的数据

      • query

      • insert

      • update

      • delete

      • getType:根据传入的URI判断mineType

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值