Android 第七课时 by姚鑫
2020-01-17 14:46:01 4 举报
AI智能生成
Andorid
作者其他创作
大纲/内容
运行时权限
简介
Android 6.0系统中引用了运行时权限这个功能,从而更好的保护用户的安全和隐私
Android权限机制详解<br>
AndroidManifest.xml<br>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><br>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /><br>
安装时提示授权<br>
在使用的过程中提示授权<br>
类别
普通权限<br>
指那些不会直接威胁到用户的安全和隐私的权限,对于这部分授权,系统自动完成<br>
例如打开网络等<br>
除去9组24个权限,其他都是普通权限
危险权限<br>
可能会触及到用户隐私或者设备安全性造成影响的权限,这部分权限需要用户手动去授权<br>
例如设备联系人信息,定位等<br>
9组24个权限<br>
CALENDAR(日历)
READ_CALENDAR
WRITE_CALENDAR
CAMERA(相机)
CAMERA
CONTACTS(联系人)
READ_CONTACTS
WRITE_CONTACTS
GET_ACCOUNTS
LOCATION(位置)
ACCESS_FINE_LOCATION
ACCESS_COARSE_LOCATION
RECORD_AUDIO
PHONE(手机)
READ_PHONE_STATE
CALL_PHONE
ERAD_CALL_LOG
WRITE_CALL_LOG
ADD_VOICEMAIL
USE_SIP
PROCESS_OUTGOING_CALLS
SENSORS(传感器)
BODY_SENSORS
SMS(短信)
SEND_SMS
RECEIVE_SMS
READ_SMS
RECEIVE_WAP_PUSH
RECEIVE_MMS
STORAGE(存储卡)
READ_EXTERNAL_STORAGE
WRITE_EXTERNAL_STORAGE
注意,每个危险权都属于一个权限组,在运行时统一其中一个,其他的也都会同意
查看api所有权限
https://developer.android.google.cn/reference/android/Manifest.permission.html
内容提供者(Content Provider)<br>
简介
主要用于在不同的应用程序之间实现数据共享的功能
它提供了一套完成的机制,允许一个程序访问另外一个程序中的数据,同时还能保证被访问数据的安全性<br>
目前,使用内容提供者是Android实现跨程序共享数据的标准方式
特点
不同与文件储存和SharedPreferences存储中的两种全局可读写操作模式<br>
内容提供者可以选择只对哪一部分数据进行共享,从而保证我们程序中的隐私数据不会有泄漏风险<br>
基本用法
两种用法
一种是现有的内容提供者来读取和操作相应程序总的数据<br>
另一种是 创建自己的内容提供其给我们程序的数据提供外部访问接口。<br>
ContentResolver<br>
通过Context中的getContentResolver()来获取该类的实例
insert(uri, values)<br>
delete(uri , where , selectionargs)<br>
update(uri, values , where ,selectionargs)<br>
query(uri,projection, selection ,selectionargs,order)<br>
ContentResolver 提供来一套CRUD即增删改查
与SQLiteDatabase不同的是<br>
ContentResolver中的增删改查都是不接收表名的<br>
用一个Uri参数来代替,这个参数被成为内容URI<br>
由两部分组成<br>
authority<br>
用于对不同的应用程序做区分的<br>
例如:com.example.app
path<br>
对于同一路径不同的表做区分<br>
例如:table1
标准格式<br>
content://con.example.app/table1<br>
系统Content Provider
读取联系人
URI
ContactsContract.CommonDataKinds.Phone.CONTENT_URI<br>
ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME
列名
ContactsContract.CommonDataKinds.Phone.NUMBER
自定义Content Provider
继承ContentProvider类并实现6个抽象反方法
onCreate()
初始化操作,对数据库的创建和升级等操作<br>
query()
insert()
update()<br>
delete()<br>
getType()<br>
传入内容的URI来返回响应的MIME类型<br>
content://con.example.app/table1/1<br>
id为1的数据<br>
content://con.example.app/*<br>
表示匹配任意长度的字符<br>
content://con.example.app/table1/#<br>
表示匹配任意长度的数字<br>
MIME字符串<br>
多用途互联网邮件扩展类型<br>
必须以vnd开头<br>
如果内容URI以路径结尾,则后接android.cursor.dir/,如果内容URI以id结尾。则后接android.cursor.item/<br>
最后街上vnd.<authority>.<path><br>
实现跨程序数据共享
0 条评论
下一页