Подтвердить что ты не робот

Есть ли способ переключать bluetooth и/или Wi-Fi программно в iOS?

Я ищу простой способ переключать как bluetooth, так и Wi-Fi между состояниями включения и выключения на устройствах iOS 4.x(iPhone и iPad).

Я постоянно переключаю эти функции, когда я перемещаюсь между разными местоположениями и сценариями использования, и сейчас он принимает несколько кранов и посещений приложения настроек. Я ищу создать простое приложение, которое живет на Springboard, что я могу просто нажать, и он отключит Wi-Fi, если он включен, и наоборот, а затем сразу же уйдет. Аналогично приложению для переключения состояния bluetooth.

У меня есть SDK разработчика, и я удобен в Xcode и с разработкой iOS, поэтому с удовольствием напишу необходимый код для создания приложения. Я просто в недоумении относительно того, какой API, частный или нет, имеет необходимые функции, чтобы просто переключать состояние этих объектов.

Поскольку это царапает очень личный зуд, у меня нет намерения попробовать и продать приложение или получить его в магазине приложений, поэтому соответствие требованиям API по использованию API не является проблемой. То, что я не хочу делать, - это джейлбрейк устройств, поскольку я хочу сохранить основное программное обеспечение как отправленное.

Может ли кто-нибудь указать мне на какой-то примерный код или больше информации о достижении этой цели, поскольку мой Google-fu меня подведет, и если информация там для устройств 4.x, я просто не могу ее найти.

4b9b3361

Ответ 1

Благодаря Matt Farrugia (@mattfarrugia 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 и запустите его на устройстве. Это создает приложение с одним нажатием, которое включает и выключает Bluetooth.