Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Ожидание подключения wifi - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Вывод в TextView http://www.cyberforum.ru/android-dev/thread822476.html
Здраствуйте, я новичок и у меня возник первый вопрос: есть TextView tv1 и есть "InetAddress Address = InetAddress.getByName("www.ya.ru");" нужные мне данные находятся в Address, как мне это вывести в...
Программирование Android Портирование и просто размышление) Добрый день!)Я вот ни как не могу найти какой либо информации косающейся моего вопроса,так что я решил обратиться к вам)Представим у нас есть игра написанная на движке cocos2d(С++)есть ли возможность... http://www.cyberforum.ru/android-dev/thread822395.html
Программирование Android Разные шрифты на эмуляторе и на девайсе
Здравствуйте, проблема в следующем: Динамически создаю разметку, размер шрифта задаю так: res = context.getResources();...
Дизайн: как задать программно интерфейс приложения? Программирование Android
Здравствуйте. Расскажите мне пожалуйста как можно больше про дизайн приложений. Раньше я работал с css html и т.п. Мне интересны аналоги border-radius, shadow, border, стили шрифта, padding,...
Программирование Android Android vs JRE 1.7 http://www.cyberforum.ru/android-dev/thread822149.html
Возникла необходимость в функциональности java 7(switch со строками). Но как выяснилось, андрюша не хочет работать с java 7. Скажите, есть ли какие-нибудь способы заставить его подружиться с 7 java?...
Программирование Android Очистить layout Доброго времени суток! У меня есть очень большая анкета(около 120 EditText и CheckBox). Мне надо реализовать кнопку Очистить. Обращаться к каждому элементу по ID очень долго и муторно. Тут... подробнее

Показать сообщение отдельно
xbarmaglot
3 / 3 / 0
Регистрация: 06.10.2012
Сообщений: 248

Ожидание подключения wifi - Программирование Android

30.03.2013, 13:03. Просмотров 2816. Ответов 16
Метки (Все метки)

Включаю wifi и пытаюсь дождаться подключения.
Идея следующая
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
final class ConnectivityReceiver extends BroadcastReceiver
{
    private final int m_ntype;    
    private final CountDownLatch m_receive = new CountDownLatch(1);
 
    ConnectivityReceiver(int type)
    {
        m_ntype = type;
    }
 
    @Override
    public void onReceive(Context context, Intent intent)
    {
        Bundle bundle  = intent.getExtras();
        if (bundle == null)
        {
            Log.e(this.getClass().getName(), "Отсутствуют данные SMS");
            return;
        }            
        NetworkInfo ninfo = bundle.getParcelable(ConnectivityManager.EXTRA_NETWORK_INFO);
        if (ninfo == null)
        {
            Log.e(this.getClass().getName(), "Отсутствуют данные о сети");
            return;            
        }
        if ((ninfo.getType() == m_ntype) && (ninfo.getState() == State.CONNECTED))
        {
            m_receive.countDown();
        }
    }
 
    public boolean waitForConnection() throws InterruptedException
    {
        return m_receive.await(30, TimeUnit.SECONDS);
    }
}
Использую так
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
    private boolean wifiConnect()
    {
        ConnectivityReceiver receiver = new ConnectivityReceiver(ConnectivityManager.TYPE_WIFI);
        IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);                    
        m_context.registerReceiver(receiver, filter);
 
        try
        {        
            Log.d(this.getClass().getName(), "Включение wifi");
            if (!m_wmanager.setWifiEnabled(true))
            {
                Log.e(this.getClass().getName(), "Ошибка включения wifi");
                return false;                                    
            }
            if (!receiver.waitForConnection())
            {
                Log.e(this.getClass().getName(), "Не удалось подключиться к сети");
                return false;                                                            
            }
 
            Log.d(this.getClass().getName(), "Подключились к wifi");
            return true;
        }
        catch (Exception ex)
        {
            String error = (ex.getMessage() != null)
                ? ex.getMessage() : "Ошибка включения WiFi";            
            Log.e(this.getClass().getName(), error);
            return false;            
        }
        finally
        {
            m_context.unregisterReceiver(receiver);
        }
    }
Но не всегда удается дождаться.
Складывается впечатление, что BroadcastReceiver приходит в том же потоке.

Как еще можно дождаться ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru