iPhone关闭蓝牙GKPeerPickerController

Jan*_*mal 9 iphone bluetooth ipad gkpeerpickercontroller

我同意这个问题是重复的.请多多包涵.我也是你们所有人都相信不可能以编程方式打开/关闭蓝牙.

但是GKPeerPickerController如果用户不使用蓝牙,则会提示将其打开.足够公平地打开蓝牙.

我打赌我相信我们无法以编程方式关闭蓝牙,因为没有办法.但是这个应用程序这样做,所以我没有选择拒绝.

我只想确认是否可能,如果是,如何使用GKPeerPickerController或任何其他公共api方式关闭蓝牙?

Nat*_*ate 2

我知道这不是您想要的答案,但是不行,您无法使用 Apple 批准的 API 以编程方式关闭蓝牙。

今年,App Store 上批准的许多应用程序都做到了这一点。

但是,一旦他们(苹果)意识到发生了什么,他们就会在发布后不久就被苹果删除。他们当然使用私有 API。

要么开发者愚蠢地认为他们不会被注意到,要么他们只是希望在苹果下架该应用程序之前获得几周的收入,这可能足以偿还他们的成本,并带来一些利润。

问题在于,有多种方法可以检查应用程序是否正在使用私有 API。如果开发人员以正常方式使用 Objective-C 框架,那么检查就很简单。事实上,当您使用 Xcode 将应用程序二进制文件上传到 iTunes Connect 时,Xcode 会自动执行其中一些操作。但是,这不是一个完整的检查。到达 Apple 后,审阅者会执行另一项检查,我推断这比 Xcode 所做的更复杂。

然而,该检查仍然不完美,我认为不一定是懒惰的审阅者忘记执行检查的问题。Objective-C 为您提供了一些混淆方法调用的技术。根据您如何使用这些技术,您可能会通过审阅者。根据我的经验,我有充分的理由(眨眼,眨眼)相信苹果并没有在完​​全检测的 iOS 版本上运行每个应用程序,它可以记录所有函数调用,甚至击败通过混淆隐藏私有 API 使用的最佳尝试技术。

因此,我几乎可以向您保证,这解释了您在 App Store 中找到的关闭蓝牙的应用程序。公共 GameKit API 允许您打开蓝牙,但不能关闭蓝牙。

免责声明:我从未在苹果工作过,也没有苹果内部人士向我提供信息。但是,我已经通过审核流程获得了私有 API。