Сайт разработчика Александр Климова

/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000

Сетевая поддержка

2-й курс/Закрытая зона

Метки: ConnectivityManager, getBackgroundDataSetting(), java.net.InetAddress, android.net.TrafficStats

Быстрый старт
Настройка разрешений для работы с сетью
Как проверить подключение к Интернету
Проверка доступности сервера
Чтение пользовательских настроек, отвечающих за передачу данных в фоновом режиме
Получить IP-адрес хоста
Метод getAllNetworkInfo()
Поддержка LTE
Подсчёт трафика
Адреса на устройстве

Быстрый старт

Как ни странно, но телефоны все дальше и дальше отдаляются от своей основной задачи - просто позвонить. Теперь устройство используется как платформа для сетевых игр, посещения сайтов, общения по Skype, ICQ и т.д. И поэтому телефону требуется обеспечить сетевую поддержку.

Мобильные устройства подключаются к Интернету при помощи 3G, Wi-Fi (в редких случаях и по кабелю), используя стандартные протоколы HTTP, HTTPS, TCP/IP, сокеты.

Основные моменты, на которые должен обратить внимание разработчик при реализации сетевой поддержки - обеспечение конфиденциальности, учет потребления заряда батареи, проверка доступности сети.

Android предоставляет разработчику все необходимые библиотеки для работы с сетью. Android использует для работы с сетью стандартные библиотеки Java , а также ряд своих библиотек.

В таблице приведены некоторые пакеты, относящиеся к сетевым возможностям, которые присутствуют в SDK Android:

java.netСодержит классы, связанные с сетевыми функциями, в том числе сокеты потоков и датаграмм, протокол IP, а также общие средства для работы с HTTP. Это многоцелевой ресурс для работы с сетями.
java.ioПакет не относится непосредственно к сетям. Его классы используются сокетами и соединениями, содержащимися в других пакетах Java. Они используются также для обмена с локальными файлами (что часто происходит при взаимодействии с сетью).
java.nioСодержит классы, которые служат буфером для определенных типов данных. Удобен для организации сетевой связи между двумя конечными точками средствами Java.
org.apache.*Набор пакетов, которые обеспечивают точный контроль и функции для HTTP-коммуникаций на основе Apache - популярного веб-сервера с открытым исходным кодом.
android.netСодержит дополнительные сокеты доступа к сети в дополнение к основным классам java.net.*. Этот пакет включает в себя класс URI, который часто используется в разработке приложений Android, не связанных с сетью.
android.net.httpСодержит классы для работы с сертификатами SSL.
android.net.wifiСодержит классы для реализации всех аспектов WiFi (802.11 Wireless Ethernet) на платформе Android.

Важно, чтобы ваше приложение:

  • использовало сетевые сервисы только при необходимости (используйте локальное кэширование данных при первой возможности)
  • предупреждало пользователя при использовании личной информации
  • имело гибкие настройки включения и отключения различных функциональных возможностей без ущерба использования программы. Например, если уровни подгружаются из интернета, то первые несколько уровней должные быть зашиты в память программы
  • проверяло наличие сети и обрабатывало эту ситуацию

Для настройки сетевой поддержки устройств используется приложение Настройки (Settings), в котором можно настроить различные режимы (Режим полета, Wi-Fi, Мобильная сеть). Также там можно посмотреть сведения о беспроводной сети, ее типе (CDMA, EDGE, GSM), уровень сигнала, состояние подключения к сотовой сети, состояние роуминга и др.

Вы вошли на сайт, как гость.
Необходимо зарегистрироваться, чтобы прочитать статью

Реклама