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() {
//實現
}