Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在android中访问gallery图像之前使用弹出权限_Java_Android - Fatal编程技术网

Java 如何在android中访问gallery图像之前使用弹出权限

Java 如何在android中访问gallery图像之前使用弹出权限,java,android,Java,Android,直接访问库正在打开,但我需要获得库权限才能访问它 Intent galleryintent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(galleryintent, RESULT_LOAD_IMAGE); 按如下方式检查权限弹出窗口 protected void onCreate(Bundle savedInstanc

直接访问库正在打开,但我需要获得库权限才能访问它

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

按如下方式检查权限弹出窗口

  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;
        }
创建时受保护的void(Bundle savedInstanceState){
....      
如果(检查并请求权限()){
Intent gallerycontent=新意图(Intent.ACTION\u PICK,MediaStore.Images.Media.EXTERNAL\u CONTENT\u URI);
startActivityForResult(GalleryContent、RESULT\u LOAD\u IMAGE);
}
}
//支票许可
私有布尔校验和请求权限(){
int readpermission=ContextCompat.checkSelfPermission(这是Manifest.permission.READ\u外部存储);
List ListPermissionsNeed=new ArrayList();
if(readpermission!=已授予PackageManager.PERMISSION){
listPermissionsNeed.add(Manifest.permission.READ\u外部存储);
}
如果(!ListPermissionsNeed.isEmpty()){
ActivityCompat.requestPermissions(此,ListPermissionsNeed.toArray(新字符串[ListPermissionsNeed.size()),请求\u ID\u多个\u权限);
返回false;
}
返回true;
}
如果未添加权限,请在manifiest中添加权限,如下所示

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


我以前用过这个,但直接打开了我的图库。没有权限弹出窗口。是“请求多个权限”的问题吗??因为我使用了私有静态final int REQUEST\u ID\u MULTIPLE\u PERMISSIONS=1#yuvrajsinhif权限被授予后,它将直接打开图库。如果没有权限,则不会显示弹出窗口,只有它请求权限。那么在画廊开幕式上有什么错误吗@TapsI已经在“读取外部存储”清单中使用了权限,现在,当我将此代码放入图像时,单击“直接打开库”。但是我想要弹出窗口而不是直接打开@YourAJSIN只有在您未授予权限的情况下,此弹出窗口才会打开。如果您授予了权限,则该弹出窗口将不会打开。为此,请卸载apk并再次安装并检查。同时指定运行应用程序的设备的android版本,弹出窗口将显示在marshmello@Taps上方