-
-
Save liyamahendra/5fc7f87acca9ddbeeedd761241438223 to your computer and use it in GitHub Desktop.
Set the wallpaper (lock and/or home screen) on iOS using Apple's private API. Please be aware that including this code in an App Store submission will result in a rejection. This has only been tested on iOS 9.2.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@implementation CMFWallpaper | |
+ (void)setImage:(UIImage *)image { | |
NSAssert([PHPhotoLibrary authorizationStatus] == PHAuthorizationStatusAuthorized, @"access to photos is needed to set the wallpaper"); | |
NSString *path; | |
#if TARGET_OS_SIMULATOR | |
path = @"/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/PhotoLibrary.framework"; | |
#else | |
path = @"/System/Library/PrivateFrameworks/PhotoLibrary.framework"; | |
#endif | |
NSBundle *bundle = [NSBundle bundleWithPath:path]; | |
[bundle load]; | |
#pragma clang diagnostic push | |
#pragma clang diagnostic ignored "-Wundeclared-selector" | |
// Instantiate the controller. | |
id class = NSClassFromString(@"PLStaticWallpaperImageViewController"); | |
id controller = [[class alloc] performSelector:@selector(initWithUIImage:) withObject:image]; | |
// Select what wallpaper mode. | |
// 0 - Both lock screen and home screen. | |
// 1 - Home screen only. | |
// 2 - Lock screen only. | |
int wallpaperMode = 0; | |
[controller setValue:@(wallpaperMode) forKey:@"wallpaperMode"]; | |
// Tell the controller to save the data. | |
[controller setValue:@YES forKey:@"saveWallpaperData"]; | |
// Save the photo. | |
[controller performSelector:@selector(_savePhoto) withObject:nil]; | |
#pragma clang diagnostic pop | |
} | |
@end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment