2012-06-25 34 views
1

我嘗試了這些命令 -通過代碼打開iPhone設置不工作的iOS 5.1.1

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=LOCATION_SERVICES"]];  
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=General"]]; 
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=Wallpaper"]];  
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=Safari"]]; 

這些代碼打開位置,一般,壁紙和Safari分別在安裝iOS 5.0,但沒有工作在iOS版5.1.1 任何人有任何想法?

回答

5

在iOS 5.1中,prefs: URL方案已被刪除。你不能再使用它了。

如果使用私有的API是一種選擇,你可以試試這個:

SBSLaunchApplicationWithIdentifier(CFSTR("com.apple.Preferences"), false); 

你必須對SpringBoardServices框架鏈接即可。

+0

'com.apple.Preferences'(首都P)在iOS 5.1/6.1中爲我工作。 – newenglander

+0

@newenglander謝謝,很高興知道,編輯。現在你說,'preferences'(帶有小寫'p')是Preferences私有框架的包ID。 – 2013-04-02 06:12:13

0

只是快速補充@ H2CO3的答案(這不適合評論)。我用這個解決方案在我的Cydia的應用程序,打開設置,包含以下條目的權利文件合併:

<key>com.apple.springboard.launchapplications</key> 
<string>true</string> 

這是我相信的樣子的Xcode格式化權利文件。這在我的兩個測試設備上工作得很好。但是,幾位測試人員提到設置應用程序未被打開。我注意到的權利文件的幾個例子中使用不同的格式來表示一個鍵的值:

<true/> 

我想這一點是沒有用的第一項權利工作的設備上,並設置應用程序實際打開。

所以我發佈這個以防其他人有類似的問題。 (以root身份運行應用程序也可能是一個解決方案,但我沒有嘗試。)

相關問題