showImagePicker function
Implementation
Future<String?> showImagePicker(BuildContext context) async {
// 显示顶部说明弹框
showTopWarningDialog(
context: context,
title: S.of(context).permissionStorageTitle,
content: S.of(context).permissionStorageContent);
// 权限检查
final PermissionState ps = await AssetPicker.permissionCheck(
requestOption: PermissionRequestOption(
androidPermission: AndroidPermission(
type: RequestType.image,
mediaLocation: false,
),
),
returnResultDenied: true);
// 关闭说明弹框
Navigator.of(context).pop();
if (ps != PermissionState.authorized && ps != PermissionState.limited) {
Fluttertoast.showToast(msg: S.of(context).permissionSystemCheck);
return null;
}
final List<AssetEntity>? result = await AssetPicker.pickAssets(context,
pickerConfig: AssetPickerConfig(
requestType: RequestType.image,
shouldRevertGrid: false,
maxAssets: 1,
limitedPermissionOverlayPredicate: (state) => false,
));
if (result != null) {
for (var entity in result) {
final File? file = await entity.originFile;
return file?.path;
}
}
return null;
}