1

我正在创建一个私有分发应用程序,我想知道是否可以在建立蓝牙连接后使用任何方法或私有 API 打开我的应用程序。

到目前为止我发现的是,使用 iOS 7 和使用 iBeacons 的能力,您可以进入蓝牙邻近,您可以让您的应用程序发送通知以允许用户打开应用程序。

然后我希望做的是让应用程序在后台运行并侦听 iBeacon 连接,如果已建立连接,则在没有用户控制的情况下实际启动应用程序,而不仅仅是发送通知。

我意识到这永远不会被公开允许,但是有什么私人的东西我可以在不越狱的情况下实现这一目标吗?我知道启动一些你可以做的应用程序,[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];但是我希望我的应用程序监听 iBeacon,然后自行打开。

有没有办法或解决办法来实现这一目标?

4

3 回答 3

1

在没有用户交互的情况下将应用程序从后台移动到前台是很痛苦的。对不起,没有解决方案,只是想分享一些信息:

我在这里问了同样的问题,并在上​​面发布了一个赏金,但没有得到很好的回应: Show some UI from background in audio player or VOIP app on iOS

在某个时刻,我在另一个人的帮助下找到了解决方案。它基于 GSEvent 的使用(向 UI 发送点击)。您可以查看以下问题。但是,据我所知,在 iOS 7 中,这些 API 受权利保护。所以,这种方法已经死了(很可能)。

使用 GraphicsServices.h/GSEvent 以及使用 Xcode 编译 CLI iPhone 工具

使用 GSEvent 发送触摸事件,但无效

在 iOS 上模拟系统范围的触摸事件

iPhone,如何以编程方式触发按钮事件

于 2013-09-19T03:56:13.657 回答
0

当用户跨越地理边界或用户进入或离开信标附近时,应用程序可以使用区域监控来获得通知。当信标在用户设备的范围内时,应用程序还可以监控到信标的相对距离。

在 iOS 中,与您的应用关联的区域会一直被跟踪,包括当您的应用未运行时。如果在应用程序未运行时跨越区域边界,则该应用程序将重新启动到后台以处理事件。同样,如果应用程序在事件发生时被挂起,它会被唤醒并给予一小段时间(大约 10 秒)来处理事件。必要时,应用程序可以请求更多的后台执行时间。

有关详细信息: https ://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/LocationAwarenessPG/RegionMonitoring/RegionMonitoring.html#//apple_ref/doc/uid/TP40009497-CH9-SW1

于 2013-09-26T06:50:42.187 回答
0

有两种情况:您要么希望用户能够使用您的设备做某事然后使用您的应用程序,要么您希望他们始终被锁定在您的应用程序中。

在前一种情况下,您应该信任用户。只需显示推送、计时器或位置通知,让他们决定是否启动应用程序。

在后一种情况下,只需使用引导访问模式锁定设备。

于 2013-09-27T11:11:14.173 回答