iPhone关闭蓝牙GKPpeerPickerController

iPhone关闭蓝牙GKPpeerPickerController,iphone,ipad,bluetooth,gkpeerpickercontroller,Iphone,Ipad,Bluetooth,Gkpeerpickercontroller,我同意这个问题是重复的。请容忍我。我也和你们一样相信,通过编程来打开/关闭蓝牙是不可能的 但如果蓝牙未打开,则使用GKPeerPickerController会提示用户打开蓝牙。公平到可以打开蓝牙 我坚信我们不能通过编程方式关闭蓝牙,因为没有办法。但这样做,我没有选择拒绝 我只想确认是否有可能,如果有,如何使用GKPeerPickerController或任何其他公共api方式关闭蓝牙?我知道这不是您想要的答案,但是否,您无法使用苹果认可的api以编程方式关闭蓝牙 有很多应用程序 但是,一旦他们

我同意这个问题是重复的。请容忍我。我也和你们一样相信,通过编程来打开/关闭蓝牙是不可能的

但如果蓝牙未打开,则使用
GKPeerPickerController
会提示用户打开蓝牙。公平到可以打开蓝牙

我坚信我们不能通过编程方式关闭蓝牙,因为没有办法。但这样做,我没有选择拒绝


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

我知道这不是您想要的答案,但是,您无法使用苹果认可的api以编程方式关闭蓝牙

有很多应用程序

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

要么开发者愚蠢到认为自己不会被注意到,要么他们只是希望在苹果推出应用程序前几周获得收入,这可能足以支付他们的成本,并带来一些利润

问题是有很多方法可以检查应用程序是否使用私有API。如果开发人员以正常方式使用objective-C框架,那么这很容易检查。事实上,当您使用它将应用程序二进制文件上传到iTunes Connect时。但是,这不是一个完整的检查。在苹果公司,审稿人进行了另一次检查,我可以推断,这比Xcode做的更复杂

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

所以,我可以向你保证,这解释了你在应用商店中找到的那些关闭蓝牙的应用。公共GameKit API允许您打开蓝牙,但不能关闭蓝牙


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

请尝试下面的代码,我认为它也适用于您

Class BluetoothManagerClass = objc_getClass( "BluetoothManager" );
    BluetoothManager *btCont; = [BluetoothManagerClass sharedInstance];

 [btCont setPowered:NO];
您需要在项目中添加BluetoothManager类/框架


谢谢

我怀疑该应用程序可能很快就会被删除。还有一个应用程序做了类似的事情,在AppStore上只存活了一个星期左右。这与它周围的一些事情有关:用一种使用蓝牙的方法打开蓝牙,可能会用蓝牙使自己崩溃,以至于ios杀死它。(只是一个猜测)谢谢你的两个意见。实际上,从评论中我们可以看到,这个应用程序真的很有效,可以帮助打开或关闭。有了GKPeerPickerController,我们可以要求用户打开蓝牙,但如何关闭它仍然是个谜,所以问题依然存在,就像在定位服务中一样。SDK可以询问用户是否使用蓝牙功能,但bt已禁用。没有反之亦然的方法来禁用蓝牙(至少没有官方的,可能在越狱者或私人API上)…这个答案怎么样@不,这不像定位服务。蓝牙不是一项服务,而是建立在蓝牙之上的一些服务。另外,软件开发工具包不会询问用户,我猜您指的是操作系统。谢谢您的输入。但我猜这是属于私人api的,不是吗?它会通过应用商店吗?