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

Ожидание подключения wifi - Android

Восстановить пароль Регистрация
Другие темы раздела
Android Вывод в TextView http://www.cyberforum.ru/android-dev/thread822476.html
Здраствуйте, я новичок и у меня возник первый вопрос: есть TextView tv1 и есть "InetAddress Address = InetAddress.getByName("www.ya.ru");" нужные мне данные находятся в Address, как мне это вывести в tv1? tv1.setText(Address); выводит ошибку
Android Портирование и просто размышление) Добрый день!)Я вот ни как не могу найти какой либо информации косающейся моего вопроса,так что я решил обратиться к вам)Представим у нас есть игра написанная на движке cocos2d(С++)есть ли возможность портировать её менее болезненно нежели изменения кода c c++ на java?я читал что были какие то стартапы в этом направлении и вот ссылки,но по всей видимости проекты не пользуются большой популярностью... http://www.cyberforum.ru/android-dev/thread822395.html
Android Разные шрифты на эмуляторе и на девайсе
Здравствуйте, проблема в следующем: Динамически создаю разметку, размер шрифта задаю так: res = context.getResources(); PricePerQuantity.setTextSize(res.getDimension(R.dimen.item_smole_text)); Name.setTextSize(res.getDimension(R.dimen.item_large_text)); Price.setTextSize(res.getDimension(R.dimen.item_large_text));
Дизайн: как задать программно интерфейс приложения? Android
Здравствуйте. Расскажите мне пожалуйста как можно больше про дизайн приложений. Раньше я работал с css html и т.п. Мне интересны аналоги border-radius, shadow, border, стили шрифта, padding, marign, opacity, цвет rgba(0, 0, 0, 0.5), и абсолютное позиционирование. Стили кнопок, полей ввода и т.п. Всё это задать надо програмно.
Android Android vs JRE 1.7 http://www.cyberforum.ru/android-dev/thread822149.html
Возникла необходимость в функциональности java 7(switch со строками). Но как выяснилось, андрюша не хочет работать с java 7. Скажите, есть ли какие-нибудь способы заставить его подружиться с 7 java? Конечно, можно заменить switch на if'ы, но все будет как-то быдлокодновыглядеть). И чтобы не создавать еще одну тему, попутно: Есть необходимость создать в активити нечто наподобие браузерного...
Android Очистить layout Доброго времени суток! У меня есть очень большая анкета(около 120 EditText и CheckBox). Мне надо реализовать кнопку Очистить. Обращаться к каждому элементу по ID очень долго и муторно. Тут есть два варианта: 1. Сделать так что бы при нажатию кнопки приложение закрывалось и запускалось(думаю что это не так то просто) 2. Каким то способом получить все элементы на layout(теже EditText) в... подробнее

Показать сообщение отдельно
xbarmaglot
3 / 3 / 0
Регистрация: 06.10.2012
Сообщений: 242
04.02.2014, 16:17  [ТС]     Ожидание подключения wifi
lifestyle, опять поднимаю тему.
Как и говорилось выше - вынес всю работу в AsynkTask.
Но через некоторое время заметил, что подключение стало занимать, иногда, десятки минут.
Хотя таймаут стоит на 60 сек. Может садясь на await я для текущего потока блокирую приход Intent для
BroadcastReceiver ? Как тогда быть ?

На всякий случай код
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
final class ConnectivityReceiver extends BroadcastReceiver
{
    private final int m_ntype;  
    private final CountDownLatch m_wait = 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.w(this.getClass().getName(), "Отсутствуют данные о сети");
            return;
        }           
        NetworkInfo ninfo = bundle.getParcelable(ConnectivityManager.EXTRA_NETWORK_INFO);
        if (ninfo == null)
        {
            Log.w(this.getClass().getName(), "Отсутствуют данные о сети");
            return;         
        }
        if ((ninfo.getType() == m_ntype) && ninfo.isConnected())
        {
            m_wait.countDown();             
        }
    }
 
    public boolean waitConnection()
    {
        try
        {
            Log.w(this.getClass().getName(), "Ожидаем подключения...");
            return m_wait.await(60, TimeUnit.SECONDS);
        }
        catch (Exception ex)
        {       
            Log.e(Network.WiFi.class.getName(), "Ошибка ожидания подключения");
        }
        return false;
    }
}
 
public class Network
{
    public static final boolean pingGoogle()
    {
        try
        {
            Process process = Runtime.getRuntime().exec("ping -c 1 -w 1 www.google.com");
            return (process.waitFor() == 0);                    
        }
        catch (Exception ex)
        {
            Log.e(Network.class.getName(), "Ошибка опроса www.google.com");
        }   
        return false;
    }
    
    public static class Mobile
    {
        public synchronized static final boolean isOnline(Context context)
        {
            final ConnectivityManager manager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
            if (manager == null)
            {
                Log.w(Network.Mobile.class.getName(), "Ошибка доступа к службе CONNECTIVITY_SERVICE");
                return false;           
            }
            
            final NetworkInfo mobile = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
            if ((mobile != null) && mobile.isConnected())
            {
                Log.i(Network.Mobile.class.getName(), "Доступен mobile internet");
                return true;
            }
            return false;   
        }
    }
    
    public static class WiFi
    {       
        public synchronized static final boolean isOnline(Context context)
        {
            final ConnectivityManager manager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);    
            if (manager == null)
            {
                Log.w(Network.WiFi.class.getName(), "Ошибка доступа к службе CONNECTIVITY_SERVICE");
                return false;           
            }
            
            final NetworkInfo info = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);        
            if ((info != null) && info.isConnected())
            {
                Log.i(Network.WiFi.class.getName(), "WiFi уже включен");
                return true;
            }                   
            return false;
        }
        
        public synchronized static final boolean connect(Context context)
        {
            if (isOnline(context)) return true;
            
            final WifiManager manager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
            if (manager == null)
            {
                Log.w(Network.WiFi.class.getName(), "Ошибка доступа к службе WIFI");
                return false;           
            }
            
            ConnectivityReceiver receiver = new ConnectivityReceiver(ConnectivityManager.TYPE_WIFI);
            IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);                    
            context.registerReceiver(receiver, filter);
 
            try
            {       
                Log.i(Network.WiFi.class.getName(), "Включение wifi");
                if (!manager.setWifiEnabled(true))
                {
                    Log.w(Network.WiFi.class.getName(), "Ошибка включения wifi");
                    return false;                                   
                }
                if (!receiver.waitConnection())
                {
                    Log.w(Network.WiFi.class.getName(), "Не удалось подключиться к сети");
                    return false;                                                           
                }           
                Log.i(Network.WiFi.class.getName(), "Подключились к WIFI");
                return true;
            }
            finally
            {
                context.unregisterReceiver(receiver);
            }               
        }
        
        public synchronized static final boolean disconnect(Context context)
        {
            final WifiManager manager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
            if (manager == null)
            {
                Log.w(Network.WiFi.class.getName(), "Ошибка доступа к службе WIFI");
                return false;           
            }
            return manager.setWifiEnabled(false);
        }
    }
}
 
Текущее время: 12:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru