objective-c - 如何在 iOS 6.x 中以静默方式在后台启动应用程序

标签 objective-c ios6 jailbreak launch

我们想在 iPhone 中静默启动一个应用程序,而不将这个应用程序带到前台。在 iOS 5.x 中,我们通过这段代码实现了这个目标:

    [(SBApplication*)app setDisplaySetting:0x4 flag:NO];
    [(SBDisplayStack*)displayStack pushDisplay:app];
    [(SBDisplayStack*)displayStack popDisplay:app];

但是,在 iOS 6.x 中不再有 SBDisplayStack。我做了一些搜索,但没有找到任何答案。有人说 SBWorkSpace 取代了 iOS 6.x 中的 SBDisplayStack。我们使用 SBAppToAppWorkspaceTransaction 来实现,但总是将 APP 带到前台,这并没有达到我们的目的。

谁能帮帮我?谢谢!

最佳答案

您可以使用 SpringBoardServices 私有(private)框架中的 SBSLaunchApplicationWithIdentifier() 函数。它需要一个 suspended 参数:

SBSLaunchApplicationWithIdentifier(CFSTR("com.company.app"), TRUE);

为此,您还需要 com.apple.springboard.launchapplications 授权。

关于objective-c - 如何在 iOS 6.x 中以静默方式在后台启动应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14999658/

相关文章:

objective-c - 使用MFMailComposeViewController发送邮件失败

objective-c - cocoa 的性质和合成

ios - UIWebView无法加载带有三个#符号(标签)的URL,但Safari可以正常工作

ios - 如何在干净的淡入淡出动画中将 ImageView 的图像更改为另一个图像? (不仅仅是简单的 alpha 更改。)

iphone - 如何从ios应用程序连接到本地WIFI并传输信息/照片

ios - 如何从单元格中另一个项目的手势获取单元格引用

ios - 在 iOS 中获取 wifi 路由器类型

iphone - SBSettings 切换没有反应

iphone - 为什么即使我已经越狱,iOS 6.1.1中的SandBox对于App仍然存在?

iphone - 让 iOS 签名的应用程序在越狱设备上执行未签名的应用程序