Android——外部存储+动态权限

介绍

  Android对外部存储需要静态权限和动态权限。涉及五个类:Environment ,ActivityCompat,Manifest.permission ,PackManger,FileOutStream

  Environment:环境类,检查外部存储环境和获取存储路径

  AcitivityCompat:活动兼容类,检查和获取动态权限

  Manifest.permission:权限类型

  PackManger:包管理器

  FileOutputStream:文件输出流

 

属性:

  ( Environment )

    MEDIA_MOUNTED:挂载参数

 

  (PackManger)

    PERMSSION_GRANTED:权限确定参数

  

  (Manifest.permission)

    WRITE_EXTERNAL_STORAGE:写入权限

    READ_EXTERNAL_STORAGE:读取权限

 

方法

  (Environment)

    String getExternalStorageState()

      参数:无

      返回值:String

      返回值意义:返回外部存储挂载状态

      作用:获取外部存储挂载状态

 

    String getExternalStorageDirectory()

      参数:无

      返回值:String

      返回值意义:返回外部存储的文件路径

      作用:获取外部存储的文件路径

 

 

   (ActivityCompat)

      String checkSelfPermission( Context context , String perssion )

      参数:

        Context context:上下文

        String perssion:权限类型

      返回值:String

      返回值意义:是否拥有此权限

      作用:检查是否拥有此权限

 

     void requestPermissions(Activity activity, String [] permissions , int requestCode )

        参数:

          Activity activity:活动对象

          String[] permissions:权限申请字符串数组

          int requestCode:请求代码

        返回值:无

        返回值意义:无

        作用:获取动态权限

  

使用

  

 // Environment 挂载检查 ActivityCompat Manifest 权限检查 PackManger 对比
                
                // 检查外部存储挂载状态
                if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED) ){

                    // 检查读取和写入动态权限
                    if(ActivityCompat.checkSelfPermission(ThirdActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED){

                    }else {
                        // 如果没有,获取读取和写入动态权限
                        ActivityCompat.requestPermissions(ThirdActivity.this,new String[]{ Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE},100 );
                    }

                }

 

上一篇:分布式协调-Zookeeper(手写配置中心&动态刷新)


下一篇:47.(c#)环境变量中所有的值取出来,放到变量environment中