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

Можете ли вы передать настройки WiFi с устройства iOS на объект ExternalAccessory?

Я слышал, что в iOS 5 появилась функция, в которой устройство iOS может совместно использовать свою конфигурацию Wi-Fi с пристыкованным аксессуаром через инфраструктуру ExternalAccessory. Проблема в том, что я не могу найти каких-либо конкретных подробностей о реализации этого типа схемы в документах SDK.

Из моих исследований я начал подозревать, что это достигнуто с помощью "Утилиты настройки iPhone", но это по-прежнему кажется немного беспорядочным методом для реализации на устройстве.

У кого-нибудь есть идеи?

Как только данные настройки wifi будут доступны, его должно быть достаточно легко упаковать и отправить через инфраструктуру ExternalAccessory на устройство, где я буду соответствующим образом создавать поддержку протокола.

Спасибо

4b9b3361

Ответ 1

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

Настройки Wi-Fi являются частными и содержат пароли. Средний (немощный) пользователь использует более или менее одинаковый/похожий пароль для всего, включая свою сеть Wi-Fi. Если приложение может легко прочитать, что оно может быть сильно использовано.

Точно так же вы не можете получить идентификатор Apple, не говоря уже о пароле.

Ответ 2

Да! вы, безусловно, можете. Однако для использования HomeKit (нужная библиотека) вам сначала нужно быть сертифицированным MFi (для iDevice-iPhone-iPod-iPad). Это дает вам возможность разрешить пользователю просматривать все доступные Wi-Fi-сети и выбирать ссылку на устройство.

Одним из примеров этого является Withings со спайкой Aura. Смотрите скриншот из опыта посадки:

enter image description here

Затем пользователь может затем безопасно делиться своей домашней информацией wifi с новым устройством.

enter image description here

Ответ 4

Вы видели это: iPhone получает SSID без частной библиотеки

Выводит запрос пользователю приложения для защищенного сетевого пароля из вопроса?

Вы можете по крайней мере получить SSID незащищенной сети и передать ее вашему аксессуару с помощью геттера примерно так:

#import <SystemConfiguration/CaptiveNetwork.h>


@implementation DeviceWifiSSID

//https://stackoverflow.com/a/5198968/614688
+(NSString *)deviceSSID
{
    NSArray *ifs = (__bridge id)CNCopySupportedInterfaces();


    id info = nil;
    for (NSString *ifnam in ifs) {
        info = (__bridge id)CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifnam);

        if ([info objectForKey:@"SSID"] != nil)
        {
            return [info objectForKey:@"SSID"];
        }
    }


    return nil;
}

@end