<key>NSPhotoLibraryUsageDescription</key>
<string>photos</string>
<key>NSCameraUsageDescription</key>
<string></string>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.CAMERA"/>
import 'package:permission_handler/permission_handler.dart';
import 'package:flutter_vant_kit/theme/style.dart' as VantStyle;
_inspectPermission() async {
if (Platform.isIOS) {
var status = await Permission.photos.status;
if (!status.isGranted) {
return;
}
status = await Permission.camera.status;
if (!status.isGranted) {
return;
}
setState(() {
_permissionVerify = true;
});
} else if (Platform.isAndroid) {
var status = await Permission.storage.status;
if (!status.isGranted) {
return;
}
status = await Permission.camera.status;
if (!status.isGranted) {
return;
}
setState(() {
_permissionVerify = true;
});
}
}
_requestPermission(context) async {
if (Platform.isIOS) {
Map<Permission, PermissionStatus> statuses = await [
Permission.photos,
Permission.camera,
].request();
if (!(statuses[Permission.photos].isGranted &&
statuses[Permission.camera].isGranted)) {
showDialog(
context: context,
builder: (_) {
return NDialog(
title: "申请权限",
message: "设置LOGO和分享封面,需要您授权使用相册和相机权限。",
showCancelButton: true,
onConfirm: () {
openAppSettings();
},
);
},
);
}
} else if (Platform.isAndroid) {
Map<Permission, PermissionStatus> statuses = await [
Permission.storage,
Permission.camera,
].request();
if (!(statuses[Permission.storage].isGranted &&
statuses[Permission.camera].isGranted)) {
showDialog(
context: context,
builder: (_) {
return NDialog(
title: "申请权限",
message: "设置LOGO和分享封面,需要您授权使用存储和相机权限。",
showCancelButton: true,
onConfirm: () {
openAppSettings();
},
);
},
);
}
}
_inspectPermission();
}
_widget = Container(
padding: VantStyle.Style.imageWallPadding,
child: Wrap(
direction: Axis.horizontal,
spacing: VantStyle.Style.imageWallItemGutter,
runSpacing: VantStyle.Style.imageWallItemGutter,
children: [
InkWell(
child: Container(
width: VantStyle.Style.imageWallItemSize,
height: VantStyle.Style.imageWallItemSize,
decoration: BoxDecoration(
border: Border.all(
color: VantStyle.Style.imageWallUploadBorderColor,
),
borderRadius: BorderRadius.circular(
VantStyle.Style.imageWallItemBorderRadius,
),
),
child: Icon(
Icons.add,
color: VantStyle.Style.imageWallUploadColor,
size: VantStyle.Style.imageWallUploadSize,
),
),
onTap: () {
_requestPermission(context);
},
),
],
),
);