首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iPhone关闭蓝牙GKPeerPickerController

iPhone关闭蓝牙GKPeerPickerController
EN

Stack Overflow用户
提问于 2012-06-19 21:40:31
回答 2查看 1.9K关注 0票数 9

我同意这个问题是重复的。请耐心听我说。我也是你们中的一员,相信通过编程打开/关闭蓝牙是不可能的。

但是,如果蓝牙未打开,则会提示用户打开GKPeerPickerController。足够打开蓝牙了。

我敢打赌,我们不能通过编程关闭蓝牙,因为没有办法。但是this application这样做了,所以我没有选择拒绝。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-26 11:49:58

我知道这不是你想要的答案,但是no,你不能用苹果认可的API以编程方式关闭蓝牙。

已经有很多应用程序approved on the App Store this year that have done this了。

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

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

问题是,有许多方法可以检查应用程序是否使用私有API。如果开发人员以正常的方式使用objective-C框架,这是一个很容易检查的问题。事实上,当你使用它来上传应用程序二进制文件到iTunes连接时,Xcode does some of this automatically。但是,这并不是一个完整的检查。一旦到了苹果,评审员就会执行另一项检查,我可以推断出这比Xcode做的要复杂得多。

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

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

免责声明:我从来没有为苹果工作过,也没有苹果内部人士给我提供信息。但是,我已经通过审查过程得到了私有API。

票数 2
EN

Stack Overflow用户

发布于 2012-06-29 21:16:23

请尝试下面的代码,我认为它也可以为你工作。

代码语言:javascript
复制
Class BluetoothManagerClass = objc_getClass( "BluetoothManager" );
    BluetoothManager *btCont; = [BluetoothManagerClass sharedInstance];

 [btCont setPowered:NO];

您需要在项目中添加BluetoothManager类/框架。

谢谢

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11102216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档