Android 6.0系统
全称:marshmallow(棉花糖)
Google 2015年 I/O大会正式发布。
一、新特性
1、电源管理
- APP standby(应用待机)
检测:当设备不充电,且在这段时间内用户没有直接或间接地启动该应用时,应用进入待机状态。
退出:当应用被激活时,或者设备充电时,系统将应用移除此状态。 - Doze
2、APP Link
- 全称为应用程序链接
- 技术点:就是隐式启动Intent
- Android更加鼓励应用程序间关联而不再是单一的应用同浏览器的交互。弱化浏览器功能。
3、指纹识别
- 6.0以前一直由各手机制造厂商去研发,导致指纹识别不同的手机差异巨大。
- 6.0后由Android系统提供API,硬件厂商只需提供相应得硬件支持即可。
4、应用程序权限管理(最关键部分)
- 5.0以前,只需要Androidmanifest.xml中注册声明即可。
- 5.0以后,用户可以在安装的时候关闭某些权限。
- 6.0以后,对于一些用户隐私权限总是会在第一次提示用户是否授予权限(和Iphone类似),目的是为了让用户知道授予的权限究竟有什么作用。
① 运行时权限分类:
- Normal Permission
- Dangerous Permisssion & Dagerous Permission Group
② 使用流程:
- 在AndroidManifest中添加需要的权限(不可省,兼容之前版本)。
- 检查权限
ContextCompat.checkSelfPermission - 申请权限
ActivityCompat.requestPermissions
private void callPhone() {
//检查权限
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE)
!= PackageManager.PERMISSION_GRANTED){
//申请权限
ActivityCompat.requestPermissions(this, new String[] {Manifest.permission.CALL_PHONE},0);
}else{
doCallPhone();
}
}
- 处理权限申请回调
onRequestPermissionsResult
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
switch (requestCode){
case 0:
// 打电话权限回调处理
if (grantResults[0] == PackageManager.PERMISSION_GRANTED){
doCallPhone();
}else{
// 提示用户权限未被授予
}
break;
}
}