Как получать и доставлять широковещательные пакеты по каналу передачи данных (MAC) 802.11b / g в приложения Android - PullRequest
2 голосов
/ 07 ноября 2011

Мне было интересно, могу ли я принимать широковещательные пакеты на уровне MAC (L2-WiFi) на Android и доставлять такие сообщения в мое приложение, которое будет анализировать полезную нагрузку таких пакетов.

Интерфейс MAC анализирует все эти пакеты по построению (например, маяк); однако я не знаю, можно ли (где) зарегистрировать какой-нибудь «обратный вызов», который будет вызываться всякий раз, когда узел получает широковещательный пакет (т. е. ff: ff: ff: ff: ff: ff), который не является кадром WiFi управления , Идея состоит в том, чтобы иметь доступ к некоторой информации немедленно, возможно, даже до аутентификации / ассоциации, или, если это невозможно, вскоре после ассоциации и до того, как DHCP назначил и IP-адрес моему интерфейсу. Да, существуют программы, подобные tcpdump / wireshark, но им нужны права root, в то время как мы ищем обычный способ (пользовательские привилегии), чтобы сделать это.

Таким образом, точки доступа могут отправлять некоторую информацию через широковещательные пакеты, и клиенты могут получать и анализировать такую ​​информацию, выполняя некоторые действия

Есть идеи? Спасибо

1 Ответ

3 голосов
/ 20 декабря 2011

Похоже, что Android SDK API не поддерживает этот способ. Такие API показывают только функциональные возможности по сравнению с уровнем 3, IP. Таким образом, мне кажется, что вы не можете получить доступ к уровню 2 прозрачным способом. На самом деле, я не смотрел Android NDK, но я буду

...