import 'dart:io'; import 'package:flutter/foundation.dart'; import 'package:flutter/services.dart'; import 'package:image_gallery_saver/image_gallery_saver.dart'; import 'package:wallpaper/utils/local_img_manager.dart'; import 'package:permission_handler/permission_handler.dart'; import 'package:async_wallpaper/async_wallpaper.dart'; class DownloadManager { static Future downloadImgWithUrl(String urlStr) async { //对于android先去判断存储权限的获取 // if (!await Permission.storage.request().isGranted) { // return false; // } // await Permission.photos.request(); // Permission.photos. var httpClient = HttpClient(); try { // option: Options(responseType: ResponseType.bytes) var reqiest = await httpClient.getUrl(Uri.parse(urlStr)); var response = await reqiest.close(); var bytes = await consolidateHttpClientResponseBytes(response); var fileName = await LocalImgManager.saveImgDataBytes(bytes); // print(fileName); //写入数据库信息 //..... return true; } catch(error) { print("the error:${error}"); return true; } } // 保存到相册的UTil // static Future saveLocalImage(String imagePath) async { // var image = await ImageUtil.loadImageByFile(imagePath); // ByteData? byteData = // await (image.toByteData(format: ui.ImageByteFormat.png)); // if (byteData != null) { // final result = // await ImageGallerySaver.saveImage(byteData.buffer.asUint8List()); // print("SaveToAlbumUtil result:${result}"); // return result; // } else { // throw StateError("saveLocalImage error imagePath:${imagePath}"); // } // } //从网络保存至相册 static Future saveNetworkImage(String urlStr) async { var httpClient = HttpClient(); var reqiest = await httpClient.getUrl(Uri.parse(urlStr)); var response = await reqiest.close(); var bytes = await consolidateHttpClientResponseBytes(response); // final result = await ImageGallerySaver.saveImage( Uint8List.fromList(bytes), quality: 60, name: "hello"); } //android设置壁纸 static Future setWallpaper(String urlStr) async { bool result; try { result = await AsyncWallpaper.setWallpaper( url: urlStr, wallpaperLocation: AsyncWallpaper.HOME_SCREEN, goToHome: false, // toastDetails: ToastDetails.success(), // errorToastDetails: ToastDetails.error(), ); } on PlatformException { result = false; } return result; } }