Android6.0新特性
本博客为某在线教学网站课程笔记
电源管理
● App Standby(应用待机)
检测:当设备不充电时,且在这时间用户没有直接或者间接的启动该应用。
退出:应用被激活时,或者设备充电时,系统将应用移除此状态。
所以在android6.0后台的应用很容易被回收
● Doze(状态)
检测:当设备不充电时,且当设备静止且灭屏一段时间。
周期:平台尝试让系统处于休眠状态,周期性的进入在一个维持窗口回复正常工作,然后进入一个更长状态的。
App Link
希望应用之间的联系,弱化与APP与浏览器的交互,强化APP之间的连接。
简单地说没就是,A APP提供一个跳转的规则,B APP按照这个规则跳转到A App,如果用户没有安装APP那么就会提供一个下载安装地址,这大大提高的用户体验。
比如我们在微博中看到微信的推广广告,我们点击广告,如果此时用户安装了微信则直接跳转到微信,如果没有安装则提供一个安装链接。
指纹识别
6.0之前,各大手机厂商自己定制指纹识别API。
6.0开始提供相应的API
应用权限管理
运行时权限,就是当使用到某个权限时会弹出提示框询问用户时候授予权限。
查看危险性权限
adb shell pm list permissions -d -g
封装Android6.0 Permission
在BaseActivity中添加
/**
* 为子类提供一个权限检查方法
* @param permissions
* @return
*/
public boolean hasPermission(String... permissions){
for (String permission:permissions){
if (ContextCompat.checkSelfPermission(this,permission)!=
PackageManager.PERMISSION_GRANTED){
return false;
}
}
return true;
}
/**
* 为子类提供权限请求方法
* @param code
* @param permissions
*/
public void requestPermission(int code,String... permissions) {
ActivityCompat.requestPermissions(this, permissions, code);
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
switch (requestCode){
case 100:
doSdcardPermission();
break;
}
}
/**
* 默认的写SD权限处理
*/
private void doSdcardPermission() {
}
在继承BaseActivity的Activity中需要请求SD权限的地方写
if (hasPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)){
//do
}else {
requestPermission(100,Manifest.permission.WRITE_EXTERNAL_STORAGE);
}
并且重写baseActivity中处理权限结果的方法
@override
private void doSdcardPermission() {
//实现
}