java - 如何在android中访问图库图片之前使用弹出权限
问题描述
直接画廊正在打开,但我希望在访问之前获得画廊许可。
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;
}
如果未添加,还可以在清单中添加权限,如下所示
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />