回答
這一切都可以輕鬆完成,但會被Apple拒絕。
鈴聲可以通過更改com.apple.SpringBoard.plist
,特別是ringtone
鍵來更改。
以下代碼可用於讀取自定義鈴聲的實際鈴聲標題(由iTunes同步)。
NSMutableDictionary *custDict = [[NSMutableDictionary alloc] initWithContentsOfFile:@"/private/var/mobile/Media/iTunes_Control/iTunes/Ringtones.plist"];
NSMutableDictionary *dictionary = [custDict objectForKey:@"Ringtones"];
NSArray *keys = [dictionary allKeys];
id key = [keys objectAtIndex:indexPath.row];
NSMutableDictionary *customRingtone = [dictionary objectForKey:key];
NSString *name = [customRingtone objectForKey:@"Name"];
cell.textLabel.text = name;
壁紙可以被覆蓋在:
NSString *homePath1 = @"/private/var/mobile/Library/SpringBoard/HomeBackground.jpg";
NSString *homePath2 = @"/private/var/mobile/Library/SpringBoard/HomeBackgroundPortrait.jpg";
NSString *lockPath1 = @"/private/var/mobile/Library/SpringBoard/LockBackground.jpg";
NSString *lockPath2 = @"/private/var/mobile/Library/SpringBoard/LockBackgroundPortrait.jpg";
這些例子我在Cydia的應用程序之一使用。這些對他們來說並不多,但這些應該讓你朝着正確的方向前進。
牆紙路徑不再有效。 – EightyEight 2011-07-10 07:55:43
無需進行投票表決。在問題被提出並被選作正確答案時,它們是有效的。 – WrightsCS 2011-07-10 21:44:01
我不能告訴你新的路徑,但我可以告訴你,蘋果使用新的圖像合成器。它是一個cpbitmap,所以如果你喜歡tomsave的圖像,你首先需要將.png或.jpeg轉換爲.cpbitmap – 2014-09-05 04:24:38
的answer by WrightsCS停在某個點工作由於iOS的變化。不幸的是,如果您希望使用未記錄的功能,則必須使用此功能。
如果你仍然需要這樣做,只適用於非App Store應用,此代碼適用於iOS 9.3。不過,它可能會在任何未來的iOS版本中停止工作。 (見下面的註釋:在iOS的10不再工作)
#import "SBSUIWallpaperPreviewViewController.h"
#import <dlfcn.h>
// open the private framework dynamically
void *handle = dlopen("/System/Library/PrivateFrameworks/SpringBoardUIServices.framework/SpringBoardUIServices", RTLD_NOW);
UIImage *wallpaper = [UIImage imageNamed: @"background.jpg"];
Class sbClass = NSClassFromString(@"SBSUIWallpaperPreviewViewController");
// we create a view controller, but don't display it.
// just use it to load image and set wallpaper
SBSUIWallpaperPreviewViewController *controller = (SBSUIWallpaperPreviewViewController*)[[sbClass alloc] initWithImage: wallpaper];
[controller setWallpaperForLocations: 3]; // 3 -> set both for lock screen and home screen
dlclose(handle);
你需要私有API頭添加到您的項目。你通常可以在網上搜索一下,for example, here。
在上面的示例中,[SBSUIWallpaperPreviewViewController setWallpaperForLocations:]
被調用的參數爲3:3表示圖像應該用於這兩個鎖和主屏幕。 1僅表示鎖定屏幕。 2僅表示主屏幕。
對於爲什麼我打開這個框架了動態的說明,請參閱my related answer here。
我沒有關於鈴聲的回答。這確實應該是一個單獨的問題:完全不同的API在工作。
不幸的是,這不適用於iOS 10。 @Nate你有信息如何讓這個運行在iOS 10上嗎? (對於iOS 10,他的代碼崩潰,錯誤: 聲明失敗:(0),函數SBSUIWallpaperClearVideo,文件/BuildRoot/Library/Caches/com.apple.xbs/Sources/SpringBoardUIServices/SpringBoard-3563.15.8.9/SBSUIWallpaperUtilities.m,line )可能他們加了一些聰明的斷言......) – 2017-03-03 15:57:40
@GuntisTreulands,是的,我也注意到了。我正在查看[iOS 10頭文件](https://github.com/nst/iOS-Runtime-Headers/blob/master/PrivateFrameworks/SpringBoardUIServices.framework/SBSUIWallpaperPreviewViewController.h),它看起來像API仍然存在。現在可能受到權利保護。我確實記得在過去尋找其他方法來做到這一點,所以讓我在這個週末花點時間嘗試其他方法來實現這個目標。 – Nate 2017-03-03 22:14:18
@GuntisTreulands,我也嘗試在'PLStaticWallpaperImageViewController'中使用類似的方法,但它也失敗了。它看起來像iOS認識到該應用程序正試圖改變其沙箱外的東西。我也看到[PhotoLibrary]中有另一個API(https://github.com/nst/iOS-Runtime-Headers/blob/master/PrivateFrameworks/PhotoLibrary.framework/PLWallpaperImageViewController.h),但我必須做一些逆向工程弄清楚它需要的參數是什麼。我會在這裏更新你的。 – Nate 2017-03-10 05:52:51
- 1. 以編程方式設置iPhone壁紙(鎖定屏幕背景)?
- 2. 如何以編程方式設置iPhone鎖定屏幕背景?
- 3. 如何設置iPhone壁紙和鈴聲
- 4. 如何以編程方式從鈴聲設置默認鈴聲
- 5. 如何在mac中以編程方式「鎖定/解鎖」屏幕
- 6. 如何在iPhone或iPad上設置鎖定屏幕的壁紙
- 7. 如何以編程方式鎖定iPhone屏幕?
- 8. 如何以編程方式密碼鎖定我的iphone屏幕?
- 9. 以編程方式獲取Android中的「屏幕鎖定」設置
- 10. 如何在黑莓中以編程方式設置鈴聲?
- 11. 以編程方式鎖定iPhone和iPad屏幕
- 12. 鎖定屏幕以編程方式
- 13. 如何在Windows Phone 7中以編程方式設置鎖定屏幕圖像?
- 14. 以編程方式鎖定和解鎖ios中的屏幕
- 15. 如何以編程方式在Android中鎖定屏幕?
- 16. 如何以編程方式確定iPhone上的默認鈴聲?
- 17. 如何以編程方式設置鈴聲android
- 18. 以編程方式在Android中設置鈴聲
- 19. 如何以編程方式使用密碼設置屏幕鎖定?
- 20. 你可以在wp7中以編程方式鎖定屏幕
- 21. 以編程方式Android模式鎖定/解鎖屏幕
- 22. 鈴聲和聯繫方式沒有設置編程方式
- 23. 以編程方式鎖定設備上的屏幕
- 24. 如何以編程方式禁用屏幕鎖定密碼。
- 25. 如何以編程方式更改鎖定屏幕類型?
- 26. 如何設置牆紙編程?
- 27. 以編程方式安卓屏幕鎖定/解鎖
- 28. 如何在android中以編程方式設置密碼鎖定?
- 29. 如何在iphone中設計Android模式鎖定屏幕
- 30. 以編程方式設置視頻鈴聲
+1我在很多應用程序中看到它。 http://stackoverflow.com/questions/15024361/add-image-on-lock-screen-in-ios-app-when-app-is-running-in-background – HDdeveloper 2013-02-22 12:34:41