Можете ли вы передать настройки WiFi с устройства iOS на объект ExternalAccessory?
Я слышал, что в iOS 5 появилась функция, в которой устройство iOS может совместно использовать свою конфигурацию Wi-Fi с пристыкованным аксессуаром через инфраструктуру ExternalAccessory. Проблема в том, что я не могу найти каких-либо конкретных подробностей о реализации этого типа схемы в документах SDK.
Из моих исследований я начал подозревать, что это достигнуто с помощью "Утилиты настройки iPhone", но это по-прежнему кажется немного беспорядочным методом для реализации на устройстве.
У кого-нибудь есть идеи?
Как только данные настройки wifi будут доступны, его должно быть достаточно легко упаковать и отправить через инфраструктуру ExternalAccessory на устройство, где я буду соответствующим образом создавать поддержку протокола.
Спасибо
Ответы
Ответ 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]()
Ответ 3
Пользовательский интерфейс пользователя выглядит следующим образом:
http://www.theregister.co.uk/2012/07/12/pure_contour_200i_air_airplay_wireless_music_system/
https://withings.zendesk.com/hc/en-us/articles/201488707-Wi-Fi-Setup-of-the-Wireless-Scale-WS-30
Ответ 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