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;
}
}