- Расширенные настройки Wi-Fi на Android-устройствах
- Автоматическая настройка Wi-Fi сети на Android
- Ручная настройка Wi-Fi на Android
- Настройка Wi-Fi на планшете или смартфоне с Андроид: Видео
- Как сбросить настройки Wi-Fi
- Шифрование WPA и Android-устройства
- Wi-Fi и много других аббревиатур. Как в Android приложении получить данные об узлах Wi-Fi и не опухнуть
- 1. Создаем проект
- 2. Разрешения на доступы
- 3. Создаем BroadcastReceiver и подписываемся на события обновления данных о сканировании сетевого окружения Wi-Fi
- 4. Смотрим на ScanResult и разбираемся в терминах
- 5. Разбираемся в аббревиатурах и парсим capabilities
- 6. Создаем модель и функцию парсинга
- 8. Смотрим результат
Расширенные настройки Wi-Fi на Android-устройствах
Настройки Wi-Fi на Android устройствах, а на сегодняшний день это самый широкий рынок мобильных устройств – должен знать всякий владелец такого девайса. Существует несколько видов настроек:
- Ручной режим wi-fi.
- Автоматическая настройка wi-fi.
В зависимости от сложившейся ситуации, пользователь может сам выбрать интересующий вариант. Итак, давайте более подробно разберем эти способы.
Автоматическая настройка Wi-Fi сети на Android
Чаще всего пользователи системы Андроид, используют автонастройку доступа к беспроводной сети. Это показывает, что мобильный аппарат изначально настроен и готов к работе. Вам же потребуется только войти в раздел Wi-Fi на вашем аппарате и активировать Wi-Fi модуль.
После включения модуля, система начнет искать возможные подключения и выдаст вам целый список доступных. Выберите интересующее подключение и если для синхронизации потребуется пароль, то введите его в отдельное поле.
Расширенные настройки сети Wi-Fi могут потребоваться, когда:
- Беспроводная сеть, к которой вы собираетесь совершить подключение, скрыта от общего доступа.
- Если в настройках доступа отключен протокол DHCP.
Ручная настройка Wi-Fi на Android
Для начала возьмите смартфон и перейдите в настройки Wi-Fi, после чего включите адаптер. После того как на экране возникнет список возможных подключений, у вас появится два варианта:
- Если требуется поменять конфигурацию уже имеющейся точки в связи со сменой настроек доступа, то найдите в списке, нужное название сети и удерживайте на ней палец, пока на экране не всплывет дополнительное меню. В нем и нужно выбрать функцию «Изменить конфигурацию сети Wi-Fi».
Если пользователь желает подключиться к новой точке, то нужно прогартать список в самый низ и тапнуть на «Добавить новую сеть».
Следующие действия будут идентичны для всех представленных вариантов. Главная особенность заключается в том, что если вы воспользуетесь вторым способом то вам потребуется ввести SSID.
На следующем этапе в разделе «Параметры IP» нужно выбрать «Статический».
Данный параметр означает то, что во время подключения к выбранной сети будут использоваться только введенные вами данные и соответствующие параметры. Теперь нужно набрать значения в соответствующие позиции:
- IP-адрес – это адрес смартфона. Этот адрес должен оказаться в диапазоне, который указан в настройках точки доступа. Например, от 192.168.0.100 до 192.168.0.199. Иначе говоря, у вас имеется сотня вариантов. Изменению подвергается только конечное значение (100-199). Диапазон может быть менее широким. Да и сам адрес также может отличаться. Все эти особенности зависят от конфигураций маршрутизатора.
Шлюз – это главный маршрут, который требуется TCPIP для подключения к другим узлам. В общей сложности, именно от шлюза зависит, сможете ли вы осуществить выход в интернет. Если вы осуществляете настройку соединение к собственной точке доступа, которая подключена к сети, то шлюз можно узнать в прилегающей к ней инструкции или на самом роутере. Если же вы осуществляете подключение к другой точке, то эти данные нужно спрашивать у провайдера.
DNS-сервер – это отдельная служба, которая служит для определения адреса доменных имен и сопоставляет это значение с IP-адресом. Иначе говоря, каждый раз, когда пользователь вводит имя интернет-ресурса в адресной строке браузера, DNS сервер проводит проверку, какой адрес соответствует введенному имени. В этом разделе можно выбрать два DNS – первичный и вторичный. Если вы производите подключение к роутеру, то DNS-сервер такой же, как и шлюз. Если нет, то эту информацию нужно узнать у провайдера. Нужно сказать, что сегодня имеется два публичных сервера от Google:
Настройка Wi-Fi на планшете или смартфоне с Андроид: Видео
Как сбросить настройки Wi-Fi
В самом начале нужно сказать, что вы изменяете конфигурацию только для выбранного подключения. То есть данные настройки не будут распространяться на остальные точки. Иначе говоря, чтобы сбросить конфигурацию Wi-Fi в вашем смартфоне для конкретного соединения, вам потребуется просто активировать модуль Wi-Fi и ту сеть, которую хотите удалить. В новом окне тапните на «Забыть сеть» или же нажмите на «Изменить конфигурацию».
В первом варианте, конфигурации для этого подключения удалятся, и вам придется вводить пароль. Во втором варианте вы можете включить функцию DHCP в настройках IP. Она позволит вашему смартфону получать нужные настройки в автоматическом режиме.
Источник
Шифрование WPA и Android-устройства
Помер у знакомого wifi на роутере, подключил к свободному порту валявшуюся у меня без дела точку доступа D-Link DWL-900AP. Из шифрования она поддерживает только бесполезный WEP и устаревший, но пока еще актуальный WPA (не WPA2-AES, а именно WPA-TKIP).
Включил WPA и возникла проблема. Два брендовых смартфона (Sony Xperia с Android 2.1, и что-то из новых Huawei с Android 4.x) подхватили сеть без проблем, а вот пара китайских девайсов на базе MTK-чипсета с андроидом 4.x дружить с ней нормально не захотели.
Один из них к сети подключается после десятка-другого попыток, и, подключившись, работает идеально до тех пор, пока связь не разорвешь руками, или она не разорвется по иным объективным причинам. После этого его снова нужно долго и нудно упрашивать подключиться.
Второй девайс подключить вообще не удалось. Он так же, как и первый, раздражает идиотской надписью «сохранено, защита WPA» под именем сети, но ни с десятого, ни с тридцатого тычка в кнопку «подключить», цепляться к точке не захотел.
Отсюда два вопроса:
1. Есть ли способ заставить это китайское фуфло работать?
2. Существует ли под андроид программа типа старых dial-up-дозвонщиков, которая по заданию будет долбить подключение к сети до победного конца?
Подключение android устройства
Установил RAD Studio XE8, решил попробовать создать приложение на андроид. Воспользовался статьей.
udid Android устройства
Как получить udid (унифицированный id) Android устройства?
Высота Android устройства
Я пытался вывести на экран высоту и скорость. Добавил на форму LocationSensor. Написал в.
Устройства с Android ниже 4.0
1) Много ли устройств в продаже с ОС Android версии ниже 4.0? 2) Нужно ли вообще поддерживать все.
hifi for wifi lite
wifi fixer
когда-то использовал такие на тв-свистке с андроидом, когда у него были проблемы с вайфай..
Добавлено через 2 минуты
зы. я бы попробовал на сайте длинка поискать самую последнюю версию прошивки, вдруг в ней что-то исправлено.
Источник
Wi-Fi и много других аббревиатур. Как в Android приложении получить данные об узлах Wi-Fi и не опухнуть
Однажды мне понадобилось сканировать из Android приложения сети Wi-Fi и получать подробную выкладку данных о точках доступа.
Тут пришлось столкнуться с несколькими трудностями: в офф.документации Android многие описанные классы стали deprecated (API level > 26), что никак не было в ней отражено; описание некоторых вещей в документации минимально (например поле capabilities класса ScanResult на момент написания не описано почти никак, хотя содержит много важных данных). Третья сложность может заключаться в том, что при первой близости с Wi-Fi, отличной от чтения теории и настройки роутера по localhost, приходится иметь дело с рядом аббревиатур, которые кажутся понятными по отдельности. Но может быть не очевидно, как их соотнести и структурировать (суждение субъективно и зависит от предыдущего опыта).
В данной статье рассмотрено как из Android кода получить исчерпывающие данные о Wi-Fi окружении без NDK, хаков, а лишь с помощью Android API и понять, как их интерпретировать.
Не будем тянуть и начнем писать код.
1. Создаем проект
Заметка рассчитана на тех, кто больше одного раза создавал Android проект, поэтому подробности данного пункта опускаем. Код ниже будет представлен на языке Kotlin, minSdkVersion=23.
2. Разрешения на доступы
Для работы с Wi-Fi из приложения понадобится получить от пользователя несколько разрешений. В соответствии с документацией, для того, чтобы осуществить сканирование сети на устройствах с ОС версий после 8.0, помимо доступа к просмотру состояния сетевого окружения нужен либо доступ на изменение состояния модуля Wi-Fi устройства, либо доступ к координатам (примерным или точным). Начиная с версии 9.0 необходимо запросить у пользователя и то и то, и при этом явно запросить у пользователя включить службу определения местоположения. Не забываем галантно объяснять пользователю, что это прихоть компании Google, а не наше желание устроить за ним слежку 🙂
Итого, в AndroidManifest.xml добавим:
А в коде, в котором есть ссылка на текущую Activity:
3. Создаем BroadcastReceiver и подписываемся на события обновления данных о сканировании сетевого окружения Wi-Fi
Метод WiFiManager.startScan в документации помечен как depricated с версии API 28, но офф. guide предлагает использовать его.
Итого, получили список объектов ScanResult.
4. Смотрим на ScanResult и разбираемся в терминах
Посмотрим на некоторые поля этого класса и опишем, что они означают:
SSID — Service Set Identifier – это название сети
BSSID – Basic Service Set Identifier – MAC адрес сетевого адаптера (Wi-Fi точки)
level — Received Signal Strength Indicator [dBm (русское дБм) — Децибел, опорная мощность 1 мВт.] — Показатель уровня принимаемого сигнала. Принимает значение от 0 до -100, чем дальше от 0, тем больше мощности сигнала потерялось по пути от Wi-Fi точки к вашему устройству. Подробнее можно посмотреть например на Википедии. Здесь же расскажу, что с помощью Android класса WifiManager можно проградуировать уровень сигнала по шкале от отличного до ужасного с выбранным вами шагом:
frequency — частота работы точки Wi-Fi [Гц]. Помимо самой частоты вас может заинтересовать так называемый канал. У каждой точки есть своя рабочая чистота. На момент написания текста наиболее популярным диапозоном Wi-Fi точек является 2.4 GHz. Но, если быть точнее, точка передает информацию на ваш телефон на пронумерованной частоте, близкой к названной. Количество каналов и значения соответствующих частот стандартизованы. Это сделано для того, чтобы точки поблизости работали на разных частотах, тем самым не создавая помехи друг другу и взаимно не понижая скорость и качество передачи. При этом точки работают не на одной частоте, а на диапазоне частот (пареметр channelWidth), называемом шириной канала. То есть точки, работающие на соседних (и не только на соседних, а даже на 3 от себя) каналах создают друг другу помехи. Вам может пригодится этот незамысловатый код, который позволяет вычислить номер канала по значению частоты для точек с частотой 2.4 и 5 Ghz:
capabilities — наиболее интересное поле для анализа, работа с которым потребовало много времени. Тут в строку записываются «возможности» точки. При этом подробности интерпритации строки в документации можно не искать. Вот несколько примеров того, что может лежать в этой строке:
5. Разбираемся в аббревиатурах и парсим capabilities
Стоит упомянуть, что классы пакета android.net.wifi.* использует под капотом linux-утилиту wpa_supplicant и результат вывода в поле capabilities является копией поля flags при сканировании.
Будем действовать последовательно. Рассмотрим сначала вывод такого формата, при котором внутри скобок элементы отделены знаком «-«:
Первое значение описывает т.н. метод аутентификации (authentication). То есть, какую последовательность действий должны произвести устройство и точка доступа, чтобы точка доступа позволила собой пользоваться и каким образом шифровать полезную нагрузку. На момент написания поста самые частые варианты это WPA и WPA2, при котором либо каждое подключаемое устройство напрямую, либо через т.н. RADIUS-сервер (WPA-Enterprice) предоставляет пароль по зашифрованному каналу. Скорее всего у вас дома точка доступа предоставляет подключение по этой схеме. Отличие второй версии от первой в болеее стойком шифре: AES против небезопасного TKIP. Также постепенно внедряется WPA3, более сложный и продвинутый. Теоритически может встретиться вариант с enterprice-решением CCKM (Cisco Centralized Key Managment), но мне так и не встретился.
Точка доступа могла быть настроена на аутентификацию по MAC-адресу. Или, если точка доступа предоставляет данные по устаревшему алгоритму WEP, то аутентификации фактически нет (секретный ключ тут и является ключом шифрования). Такие варианты отнесем к типу OTHER.
Ещё есть полюбившийся в общественных wi-fi метод со скрытым Captive Portal Detection — запрос аутентификации через браузер. Такие точки доступа выглядят для сканера как открытые (какими с точки зраения физического подключения и являются). Поэтому отнесем их к типу OPEN.
Второе значение можно обозначить как алгоритм использования ключей (key management). Является параметром метода аутентификации, о котором написано выше. Говорит о том, как именно происходит обмен ключами шифрования. Рассмотрим возможные варианты. EAP — используется в упомянутом WPA-Enterprice, использует базу данных для сверки введеных аутентификационных данных. SAE — используется в продвинутом WPA3, более устойчива к перебору. PSK — самый частый вариант, подразумевает ввод пароля и его передачу в зашифрованном виде. IEEE8021X — по международному стандарту (отличному от поддержанным семейством WPA). OWE (Opportunistic Wireless Encryption) является расширением стандарта IEEE 802.11, для точек, которые мы отнесли к типу OPEN. OWE обеспечивает безопасность данных, передаваемых по незащищенной сети, за счет их шифрования. Также возможен варинант когда ключей доступа нет, назовем такой вариант NONE.
Третьим параметром является т.н. метод шифрования (encryption schemes) — как именно используется шифр для зашиты передаваемых данных. Перечислим варианты. WEP — использует поточный шифр RC4, секретный ключ является ключом шифрования, что в мире современной криптографии считается неприемлемым. TKIP — используется в WPA, CKIP — в WPA2. TKIP+CKIP — может быть указан в точках умеющих WPA и WPA2 для обратной совместимости.
Вместо трех элементов можно встретить одинокую пометку WEP:
Как мы обсудили выше, этого достаточно чтобы не конкретизировать алгоритм использования ключей, которого нет, и метода шифрования, которое одно по-умолчанию.
Теперь рассмотрим такую скобочку:
Это режим работы Wi-Fi или топология сетей Wi-Fi. Вам может встретиться Режим BSS (Basic Service Set) — когда есть одна точка доступа, через которую общаются подключенные устройства. Можно встретить в локальных сетях. Как правило точки доступа нужны для того, чтобы соединять устройства из разных локальных сетей, поэтому они являются частью Extended Service Sets — ESS. Тип IBSSs (Independent Basic Service Sets) говорит о том, что устройство является частью Peer-to-Peer сети.
Ещё может попасться флаг WPS:
WPS (Wi-Fi Protected Setup) — протокол полуавтоматической инициализации сети Wi-Fi. Для инициализации пользователь либо вводит 8-символьный пароль, либо зажимает кнопку на роутере. Если ваша точка доступа относится к первому типу и этот флажок высветился напротив имени вашей точки доступа, вам настоятельно рекомендуется зайти в админку и отключить доступ по WPS. Дело в том, что часто 8-значный PIN можно узнать по MAC-адресу, либо перебрать за обозримое время, чем кто-то нечистый на руку сможет воспользоваться.
6. Создаем модель и функцию парсинга
На основе того, что выяснили выше опишем data-классами то, что получилось:
Теперь напишем функцию, которая будет парсить поле capabilities:
8. Смотрим результат
Посканирую сеть и покажу, что получилось. Показаны результаты простого вывода через Log.d:
Неосвещенным остался вопрос подключения к сети из кода приложения. Скажу только, что для того, чтобы считать сохраненные пароли ОС мобильного устройства, нужны root-права и готовность порыться в файловой системе чтобы прочитать wpa_supplicant.conf. Если логика приложения предполагает ввод пароля извне, подключение можно осуществить через класс android.net.wifi.WifiManager.
Спасибо Егору Пономареву за ценные дополнения.
Если считаете, что нужно что-то добавить или исправить, пишите в комментарии 🙂
Источник