Iphone 有没有办法在iOS中以编程方式打开和关闭蓝牙和/或wifi?

Iphone 有没有办法在iOS中以编程方式打开和关闭蓝牙和/或wifi?,iphone,ios,bluetooth,wifi,Iphone,Ios,Bluetooth,Wifi,我正在寻找一种在iOS 4.x设备(iPhone和iPad)上切换蓝牙和wifi的简便方法 当我在不同的位置和使用场景之间移动时,我会不断切换这些功能,现在需要多次点击和访问设置应用程序。我正在寻找创建一个简单的应用程序,它生活在Springboard上,我只需点击它,它就会关闭wifi,如果它打开,反之亦然,然后立即退出。类似地,一个用于切换蓝牙状态的应用程序 我有开发者SDK,对Xcode和iOS开发很熟悉,所以我很乐意编写创建应用程序所需的代码。我只是不知道哪个API(私有或非私有)具有所

我正在寻找一种在iOS 4.x设备(iPhone和iPad)上切换蓝牙和wifi的简便方法

当我在不同的位置和使用场景之间移动时,我会不断切换这些功能,现在需要多次点击和访问设置应用程序。我正在寻找创建一个简单的应用程序,它生活在Springboard上,我只需点击它,它就会关闭wifi,如果它打开,反之亦然,然后立即退出。类似地,一个用于切换蓝牙状态的应用程序

我有开发者SDK,对Xcode和iOS开发很熟悉,所以我很乐意编写创建应用程序所需的代码。我只是不知道哪个API(私有或非私有)具有所需的功能来简单地切换这些设施的状态

因为这是一个非常个人的问题,我不打算尝试销售该应用程序,也不打算在应用程序商店上发布,所以遵守应用程序API使用指南是不成问题的。我不想做的是越狱的设备,因为我想保持核心软件的出货

有人能告诉我一些实现这个目标的示例代码或更多信息吗,因为我的Google fu让我失望,如果4.x设备的信息在那里,我就是找不到。

多亏了Matt Farrugia(@Mattfarugia on Twitter),我想要的答案是:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.

#if TARGET_IPHONE_SIMULATOR
    exit( EXIT_SUCCESS ) ;
#else
    /* this works in iOS 4.2.3 */
    Class BluetoothManager = objc_getClass( "BluetoothManager" ) ;
    id btCont = [BluetoothManager sharedInstance] ;
    [self performSelector:@selector(toggle:) withObject:btCont afterDelay:0.1f] ;
#endif
    return YES ;
}

#if TARGET_IPHONE_SIMULATOR
#else
- (void)toggle:(id)btCont
{
    BOOL currentState = [btCont enabled] ;
    [btCont setEnabled:!currentState] ;
    [btCont setPowered:!currentState] ;
    exit( EXIT_SUCCESS ) ;
}
#endif

您还需要链接Gamekit框架,但只需将此代码添加到新的Xcode项目并在设备上运行即可。这样做会创建一个1-tap应用程序,可切换蓝牙的开启和关闭。

我为开发人员帐户付费,因此如果证书过期,我肯定会重新下载它并从Xcode重新安装应用程序?就像我会安装任何其他正在进行的工作应用程序一样。这是一个内部的,个人的应用程序来解决我自己的,一次性的问题。私有API很好,因为它将看到的唯一设备是我的。我在自己的应用程序中尝试了上述方法,但不起作用,我使用的是Xcode3.2.5和iPod 4、iOS 4.3.2、、,,,你能帮帮我吗?对不起,我没有解决办法。再耽搁一下对我来说没问题。谢谢creednmd@creednmd您知道setEnabled和setPowered属性的效果吗?这些设置中的哪一个实现了什么?@marcus恐怕不知道。“当我有机会的时候,我必须调查一下。”德托尼。很高兴这有帮助;当然,真正的感谢应该归于Mattfarugia。