Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 13.12.2012, 12:20
uglan вне форума Посмотреть профиль Отправить личное сообщение для uglan Посетить домашнюю страницу uglan Найти все сообщения от uglan
  № 1  
Ответить с цитированием
uglan

Регистрация: Mar 2003
Адрес: moscow
Сообщений: 102
Отправить сообщение для uglan с помощью ICQ Отправить сообщение для uglan с помощью Skype™
По умолчанию NetworkInfo ANE - доступность сети IOS

Привет!
Для определения наличия сети на ios устройствах использую NetworkInfo ANE (http://www.adobe.com/devnet/air/nati...tworkinfo.html). В документации и примерах нет четкого обозначения как используя эту библиотеку можно просто определять доступность сети на устройстве без перебора интерфейсов и проч. Я использую код в примере по ссылке + ставлю доп проверку на active(!=false) и hardwareAddress(!= null и !=""). Если таковую проверку не ставить то устройство всегда будет определять сеть там даже где ее нет
На айпаде и айподе 5-м такой извращенный способ работает, но на айфоне 4-м почему то нет, при этом hardwareAddress там не пустые и active тоже не false. Кто знает в чем может быть дело или есть какой-нибудь другой способ определить на ios доступность сети?
__________________
uglan

Старый 27.12.2012, 11:21
maincode вне форума Посмотреть профиль Отправить личное сообщение для maincode Посетить домашнюю страницу maincode Найти все сообщения от maincode
  № 2  
Ответить с цитированием
maincode

Регистрация: Feb 2010
Адрес: Город суеты
Сообщений: 191
я думаю вам лучше с этим вопросом обратится к iOS/Objective-C разработчикам, флешеры вряд ли помогут

Добавлено через 37 минут
Прошу прощения, не внимательно прочитал сообщение. В моем проекте есть ane расширение которое определяет наличие подключения, и отправляет событие в момент изменения состояния сети доступно/недоступно


определение доступности сети
Код:
FREObject isNetworkReachable_phone(FREContext ctx, void* funcData, uint32_t argc, FREObject argv[])
{
    NSLog(@"isNetworkReachable_phone");
    BOOL returnValue = NO;
    
    // Инициализируем структуру sockaddr_in
    struct sockaddr_in address;
    size_t address_len = sizeof(address);
    memset(&address, 0, address_len);
    address.sin_len = address_len;
    address.sin_family = AF_INET;
    
    SCNetworkReachabilityRef reachabilityRef = SCNetworkReachabilityCreateWithAddress(NULL, (const struct sockaddr*)&address);
    
    if (reachabilityRef != NULL) {
        SCNetworkReachabilityFlags flags = 0;
        if(SCNetworkReachabilityGetFlags(reachabilityRef, &flags)){
            returnValue = checkFlags(flags);
        }
        CFRelease(reachabilityRef);
    }
    NSLog(@"    * returnValue = %d", returnValue);
    return boolToFre(returnValue);

}
старт/стоп сканирования сети, в случае изменения состояния, отправляется событие:
Код:
void _NetworkReachabilityCallback(SCNetworkReachabilityRef target, SCNetworkReachabilityFlags flags, void* info)
{
    NSLog(@"_NetworkReachabilityCallback = %i", flags);
    BOOL enabled = checkFlags(flags);
    NSLog(@"    enabled = %d", enabled);
    [network networkChange:enabled];
}

SCNetworkReachabilityRef reachabilityRef;
FREObject startMonitoring_phone(FREContext ctx, void* funcData, uint32_t argc, FREObject argv[])
{
    NSLog(@"startMonitoring_phone");
    // Инициализируем структуру sockaddr_in
    struct sockaddr_in address;
    size_t address_len = sizeof(address);
    memset(&address, 0, address_len);
    address.sin_len = address_len;
    address.sin_family = AF_INET;
    
    reachabilityRef = SCNetworkReachabilityCreateWithAddress(NULL, (const struct sockaddr*)&address);
    
    if (reachabilityRef != NULL) {
        SCNetworkReachabilityContext context = { 0, NULL, NULL, NULL, NULL};
        if(SCNetworkReachabilitySetCallback(reachabilityRef, _NetworkReachabilityCallback, &context)) {
            SCNetworkReachabilityScheduleWithRunLoop(reachabilityRef, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode);
        }
        NSLog(@"    YES");
        return boolToFre(YES);
    }
    NSLog(@"    NO");
    return boolToFre(NO);
}

FREObject stopMonitoring_phone(FREContext ctx, void* funcData, uint32_t argc, FREObject argv[])
{
    NSLog(@"stopMonitoring_phone");
    if(reachabilityRef) {
        SCNetworkReachabilityUnscheduleFromRunLoop(reachabilityRef, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode);
        CFRelease(reachabilityRef);
        return boolToFre(YES);
    }
    return boolToFre(NO);
}

Создать новую тему Ответ Часовой пояс GMT +4, время: 02:06.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
ANE , ios , Networkinfo
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 02:06.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.