【发布时间】:2014-07-15 07:20:59
【问题描述】:
我的 iOS 应用通过专有 SDK(即非核心蓝牙框架)与 BTLE 设备通信。配对也通过此 SDK(PnP 代码)进行。 SDK 服务有很多非标准的蓝牙服务和特性。
一旦用户切换到另一个应用程序,即主应用程序在后台运行,我就无法再访问 SDK 服务了。但是,即使我的应用在后台运行,我也必须继续从设备接收数据。
根据我的研究,Apple 只允许少数背景模式,在此处列出 https://developer.apple.com/library/ios/documentation/general/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html(在页面中搜索“UIBackgroundModes”),例如音频、位置、voip、获取、远程通知、报亭内容、外部附件、蓝牙中心、蓝牙外设
由于 SDK 使用自己的蓝牙框架和许多非标准蓝牙服务,如果有的话,我是否必须允许我的应用程序在后台运行时连续访问服务? ?
我正在考虑在后台使用定位服务。我有一个疑问:
如果 Apple 发现定位服务在我的应用中几乎没有用处或没有用处,那么他们可能会拒绝它吗?
如果我的 iPhone 在平面上,那么它不会调用 didUpdateLocation 方法并且在这种情况下我无法与 SDK 通信?
请建议,在后台运行我的应用程序的最佳方式是什么,这样我就不会遇到任何问题。
【问题讨论】:
-
您确定您的 SDK 没有在“幕后”使用核心蓝牙吗? SDK 无法通过其他方式访问 BTLE 硬件并仍然允许您的应用被批准进入应用商店
标签: ios bluetooth bluetooth-lowenergy core-bluetooth