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

 

若是按了禁止,每次检查都会提醒

相关文章
相关标签/搜索