Android学习笔记之——Content Providers

Leona ·
更新时间:2024-09-20
· 876 次阅读

之前博文《 Android学习笔记之——Android Studio的安装(3.6版本)、Java的基本语法及Android的概述 》曾经介绍过android有四大组件。本博文学习一下Content Providers(内容提供器)

目录

Android运行时 (Android runtime)权限

在程序运行时申请权限

内容提供器简介

访问其他程序中的数据

Android运行时 (Android runtime)权限

Android开发团队在Android 6.0系统中引用了运行时权限这个功能,从而更好地保护了用户的安全和隐私。在之前博文《 Android学习笔记之——Broadcast机制》中,当要访问系统的网络状态以及监听开机广播的时候,需要在AndroidManifest.xml文件中添加了这样两句权限声明:

因为访问系统的网络状态以及监听开机广播涉及了用户设备的安全性,因此必须在AndroidManifest.xml中加入权限声明,否则程序就会崩溃。

当有这样的声明后,对于低于6.0的系统安装界面会提醒权限,如果拒绝则无法安装程序。为此,6.0系统中加入了运行时权限功能。也就是说,用户不需要在安装软件的时候一次性授权所有申请的权限,而是可以在软件的使用过程中再对某一项权限申请进行授权。比如说一款相机应用在运行时申请了地理位置定位权限,就算拒绝了这个权限,但是我应该仍然可以使用这个应用的其他功能,而不是像之前那样直接无法安装它。

当然,并不是所有权限都需要在运行时申请,对于用户来说,不停地授权也很烦琐。Android现在将所有的权限归成了两类,一类是普通权限,一类是危险权限。普通权限指的是那些不会直接威胁到用户的安全和隐私的权限,对于这部分权限申请,系统会自动帮我们进行授权,而不需要用户再去手动操作了,比如在BroadcastTest项目中申请的两个权限就是普通权限。危险权限则表示那些可能会触及用户隐私或者对设备安全性造成影响的权限,如获取设备联系人信息、定位设备的地理位置等,对于这部分权限申请,必须要由用户手动点击授权才可以,否则程序就无法使用相应的功能。

Android中所有的危险权限
在程序运行时申请权限

新建一个RuntimePermissionTest项目(使用CALL_PHONE 这个权限),修改activity_main.xml布局文件,如下所示:

需要 登录 后方可回复, 如果你还没有账号请 注册新账号