首页 > 解决方案 > 如何在android中访问图库图片之前使用弹出权限

问题描述

直接画廊正在打开,但我希望在访问之前获得画廊许可。

Intent galleryintent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
      startActivityForResult(galleryintent, RESULT_LOAD_IMAGE);

标签: javaandroid

解决方案


像下面这样检查权限弹出

  protected void onCreate(Bundle savedInstanceState) {

          ....      

            if (checkAndRequestPermissions()) {
                Intent galleryintent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
                startActivityForResult(galleryintent, RESULT_LOAD_IMAGE);
            }

        }
        //checkpermision
        private boolean checkAndRequestPermissions() {
            int readpermision = ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE);

            List<String> listPermissionsNeeded = new ArrayList<>();

            if (readpermision != PackageManager.PERMISSION_GRANTED) {
                listPermissionsNeeded.add(Manifest.permission.READ_EXTERNAL_STORAGE);
            }

            if (!listPermissionsNeeded.isEmpty()) {
                ActivityCompat.requestPermissions(this, listPermissionsNeeded.toArray(new String[listPermissionsNeeded.size()]), REQUEST_ID_MULTIPLE_PERMISSIONS);
                return false;
            }
            return true;
        }

如果未添加,还可以在清单中添加权限,如下所示

 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

推荐阅读