【问题标题】:Open iPhone settings through code not working in iOS 5.1.1通过在 iOS 5.1.1 中不起作用的代码打开 iPhone 设置
【发布时间】:2012-06-25 12:37:00
【问题描述】:

我试过这些命令-

[[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"]];

这些代码分别在 iOS 5.0 中打开 Location、General、Wallpaper 和 Safari,但在 iOS 5.1.1 中不起作用 有人知道吗?

【问题讨论】:

    标签: iphone objective-c location ios5.1


    【解决方案1】:

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

    如果可以选择使用私有 API,您可以试试这个:

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

    你必须链接到 SpringBoardServices 框架。

    【讨论】:

    • com.apple.Preferences(大写 P)在 iOS 5.1/6.1 中为我工作。
    • @newenglander 谢谢,很高兴知道,已编辑。现在你说preferences(带有小写p)是Preferences私有框架的bundle ID。
    【解决方案2】:

    只是对@H2CO3 答案的快速补充(不适合 cmets)。我在我的 Cydia 应用程序中使用该解决方案打开设置,并结合包含以下条目的权利文件:

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

    这就是我相信 Xcode 格式化权利文件的方式。这在我的两个测试设备上运行良好。但是,一些 beta 测试人员提到设置应用程序没有打开。我注意到几个权利文件示例使用不同的格式来指示键的值:

    <true/>
    

    我在无法使用第一个权利条目的设备上进行了尝试,并且设置应用程序实际上已打开。

    所以我发布这个以防其他人有类似的问题。 (以root身份运行应用程序也可能是一种解决方案,但我没有尝试过。)

    【讨论】:

      猜你喜欢
      • 2018-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-28
      • 2014-08-21
      • 1970-01-01
      • 1970-01-01
      • 2019-05-01
      相关资源
      最近更新 更多