Android6.0以上多个动态权限申请

第一次写博客,嘻嘻,记录下自己用过的东西,以后再用就很方便,文章借鉴转至https://blog.csdn.net/lhp15575865420/article/details/79210696

首先在manifests配置文件添加所需权限

  <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

代码中动态申请

//动态申请权限,首先定义一个所需权限数组
    String[] allpermissions=new String[]{Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.ACCESS_COARSE_LOCATION,
            Manifest.permission.SYSTEM_ALERT_WINDOW,Manifest.permission.BLUETOOTH};
//定义判断权限申请的函数,在onCreat中调用就行
public void applypermission(){
        if(Build.VERSION.SDK_INT>=23){
            boolean needapply=false;
            for(int i=0;i<allpermissions.length;i++){
                int chechpermission= ContextCompat.checkSelfPermission(getApplicationContext(),
                        allpermissions[i]);
                if(chechpermission!=PackageManager.PERMISSION_GRANTED){
                    needapply=true;
                }
            }
            if(needapply){
                ActivityCompat.requestPermissions(MainActivity.this,allpermissions,1);
            }
        }
    }
//重载用户是否同意权限的回调函数,进行相应处理
 @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        for(int i=0;i<grantResults.length;i++){
            if(grantResults[i]==PackageManager.PERMISSION_GRANTED){
            //同意后的操作
    Toast.makeText(MainActivity.this, permissions[i]+"已授权",Toast.LENGTH_SHORT).show();
            }
            else {
           //不同意后的操作
     Toast.makeText(MainActivity.this,permissions[i]+"拒绝授权",Toast.LENGTH_SHORT).show();
            }
        }
    }

猜你喜欢

转载自blog.csdn.net/qq_39525799/article/details/81168366