|
|
|
Рабочий способ проверки наличия Интернета
|
|||
|---|---|---|---|
|
#18+
Подскажите рабочий способ проверки наличия Интернета (проверяем по заданному URL) для Android. Есть несколько методов - ping, HTTPUrlConnection, ConnectivityManager. В Интернете очень много разных примеров, но почти везде какой-то сырой код с ошибками в тех или иных случаях. Как пишут некоторые разработчики, ping работает не во всех случаях, с 3-м способом тоже бывают проблемы. Нужно, чтобы не было Exception'ов при разных типах подключения и др. Какой самый простой и надёжный способ? Вот есть такой метод: public static boolean isNetworkAvailable(Context context) { return ((ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo() != null; } Кто-нибудь пользовался? У меня пока что вылетает с остановкой приложения. Про метод isReachable тоже были примеры, которые якобы вылетают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2013, 21:52:10 |
|
||
|
Рабочий способ проверки наличия Интернета
|
|||
|---|---|---|---|
|
#18+
motorwayПодскажите рабочий способ проверки наличия Интернета (проверяем по заданному URL) для Android. Это наверное не проверка наличия интернета, а проверка возможности установить связь с конкретным узлом. Способ только один -- установить соединение, потом, если оно не нужно -- разорвать. motorwayЕсть несколько методов - ping, HTTPUrlConnection, ConnectivityManager. Есть класс сокета TCP в стандартном J2SE, кажется java.net.Socket. В сети думаю полно примеров, как его использовать. Надо открыть соединение и закрыть его тут же. ping -- это в любом случае не то, это не годится, потому что он даже соединение не устанавливает, и просто может не быть включён на каком-то хосте. И его часто просто банят на файрволах. ConnectivityManager что такое -- не представляю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2013, 18:57:22 |
|
||
|
Рабочий способ проверки наличия Интернета
|
|||
|---|---|---|---|
|
#18+
MasterZiv, спасибо. Вот нашёл такой код: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Вопрос в том, что нужно писать в обработчике исключений catch. Если там поставить return false, будет ли ошибка? Или что-то обязательно нужно делать? Также, что будет с этим кодом, если в процессе подключения соединение разорвётся? Как обрабатывать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2013, 19:23:59 |
|
||
|
Рабочий способ проверки наличия Интернета
|
|||
|---|---|---|---|
|
#18+
motorwayВот есть такой метод: public static boolean isNetworkAvailable(Context context) { return ((ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo() != null; } Кто-нибудь пользовался? У меня пока что вылетает с остановкой приложения This method requires the caller to hold the permission ACCESS_NETWORK_STATE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2013, 23:46:26 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38322884&tid=2129031]: |
0ms |
get settings: |
18ms |
get forum list: |
30ms |
check forum access: |
7ms |
check topic access: |
7ms |
track hit: |
74ms |
get topic data: |
21ms |
get forum data: |
5ms |
get page messages: |
72ms |
get tp. blocked users: |
2ms |
| others: | 322ms |
| total: | 558ms |

| 0 / 0 |
