Код: Выделить всё
Future checkAndRequestPermissions({required bool skipIfExists}) async
{
if (!Platform.isAndroid && !Platform.isIOS)
{
return false; // Only Android and iOS platforms are supported
}
if (Platform.isAndroid) {
final deviceInfo = await DeviceInfoPlugin().androidInfo;
final sdkInt = deviceInfo.version.sdkInt;
if (skipIfExists) {
// Read permission is required to check if the file already exists
return sdkInt >= 33
? await Permission.photos.request().isGranted
: await Permission.storage.request().isGranted;
} else {
// No read permission required for Android SDK 29 and above
return sdkInt >= 29 ? true : await Permission.storage.request().isGranted;
}
} else if (Platform.isIOS) {
// iOS permission for saving images to the gallery
return skipIfExists
? await Permission.photos.request().isGranted
: await Permission.photosAddOnly.request().isGranted;
}
return false; // Unsupported platforms
}
Future saveImageToGallery(File imageFile, String imageName, {bool skipIfExists = false}) async{
final hasPermissions = await checkAndRequestPermissions(skipIfExists: skipIfExists);
if(!hasPermissions){
print("Permission Denied");
return;
}
final savedImage = await SaverGallery.saveFile(
filePath: imageFile.path,
fileName: "$imageName.jpg",
androidRelativePath: "Pictures/my_app",
skipIfExists: skipIfExists);
if(savedImage.isSuccess == true) {
print(imageFile.path);
} else{
print("Failed");
}
}
/* This is my function to take an image using camersa*/
Future addImageFromCamera() async {
final pickedImage = await imagePick.pickImage(source: ImageSource.camera);
return pickedImage != null ? File(pickedImage.path) : null;
}
< /code>
'Это мой код для того же. Я использую тот же код, который они использовали на странице Pub.DEV в пакете saver_gallery Подробнее здесь: https://stackoverflow.com/questions/797 ... in-flutter
Мобильная версия