setWallpaper method

  1. @override
Future<String?> setWallpaper(
  1. File imageFile,
  2. int location
)
override

Sets the wallpaper for the specified location.

imageFile is the file containing the image to be set as wallpaper. location is the screen location where the wallpaper should be set. It can be homeScreen, lockScreen, or bothScreens.

Throws an UnimplementedError if the method is not implemented by the platform.

Implementation

@override
Future<String?> setWallpaper(File imageFile, int location) async {
  try {
    // Convert image file to byte data
    Uint8List imageByteData = await _readFileByte(imageFile.path);

    // Send byte data and location to the platform channel
    final String? result = await methodChannel.invokeMethod<String>(
      'setWallpaper',
      {
        'data': imageByteData,
        'location': location,
      },
    );

    // Return the result from the platform channel
    return result;
  } on PlatformException catch (e) {
    throw Exception('Failed to set wallpaper: ${e.message}');
  } catch (e) {
    throw Exception('Unexpected error: $e');
  }
}