Android6.0新特性

一、主要更新模塊java

電源管理

android

App Standby 應用待機

檢測:當設備不充電,且在這時間內用戶沒有直接或間接的啓動該應用瀏覽器

退出:當應用被激活時,或者設備充電時,系統將應用移出此狀態安全

 

Doze

檢測:當設備不充電,且當設備靜止且滅屏一段時間app

週期:平臺嘗試讓系統處於休眠狀態,週期性地進入在一個維持窗口恢復正常操做,而後進入更長的休眠狀態iphone

ide

App Link

全稱爲應用程序連接this

技術點:就是咱們的隱式啓動Intentspa

android更加鼓勵應用程序間的關聯而再也不是單一的應用通瀏覽器的交互code

指紋識別

應用權限管理

5.0以前,只須要在manifest.xml中註冊便可

5.0之後,用戶能夠在安裝的時候關閉某些權限

6.0及之後,對於一些用戶隱私權限老是會在第一次提示用戶是否授予權限(和iphone相似)

 

運行時權限的優點:

新的權限機制更好的保護了用戶的隱私

給了程序向用戶說明權限的做用

能夠防止一些惡意程序盜取用戶或者手機信息,加強了android系統的安全性

 

運行時權限的分類:

Normal Permission

Dangerous Permissio & Dangerous Permission Group

權限組的概念:

若是你申請某個危險的權限,假設你的app早已被用戶受權了同一組的某個危險權限,那麼系統會當即受權,而不須要用戶去點擊受權。

 

 

demo:

Activity申請打電話權限:

//打電話
                if(ContextCompat.checkSelfPermission(mContext, Manifest.permission.CALL_PHONE)
                        != PackageManager.PERMISSION_GRANTED){
                    //作權限申請處理
                    ActivityCompat.requestPermissions(PermissionActivity.this, new String[]{
                            Manifest.permission.CALL_PHONE
                    }, 1);
                }else {
                    doCallPhone();
                }

 

private void doCallPhone(){
        Intent intent = new Intent(Intent.ACTION_CALL);
        Uri data = Uri.parse("tel:"+"10086");
        intent.setData(data);
        startActivity(intent);
    }

 

若是是在Fragment裏申請權限:

直接能夠用Fragment裏自帶的requestPermissions,

若是用則不會進行回調 ActivityCompat.requestPermissions

requestPermissions(new String[]{
                    Manifest.permission.ACCESS_FINE_LOCATION
            }, Config.REQ_GET_LOCATION);

 

 

回調方法:能夠作一些提醒處理

@Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        switch (requestCode){
            case 1:
                //打電話權限回調處理
                if(grantResults[0] == PackageManager.PERMISSION_GRANTED){
                    doCallPhone();
                }else {
                    //提示用戶權限未被授予
                }
                break;
            case 0:
                if(grantResults[0] == PackageManager.PERMISSION_GRANTED){
                    doSDCardPermission();
                }else {
                    //提示用戶權限未被授予
                    Toast.makeText(mContext, "權限被禁止", Toast.LENGTH_LONG).show();
                }
                break;
        }
    }

 

若是按了禁止,每次檢查都會提醒

相關文章
相關標籤/搜索