Это своего рода странный вопрос, но я знаю, что это возможно.
Я пытаюсь передать пакеты по определенной частоте, и я хочу, чтобы телефон, на котором выполнялось приложение, собирал эти пакеты. Для этого телефону не потребуется подключение к какой-либо сети, но просто включите его. Радиовещательному устройству не нужно получать какую-либо информацию с телефона, и доставка каждого пакета на телефон не обязательно должна быть гарантирована, как и UDP.
С чего начать? Возможно ли это для телефонов без их укоренения. Существует ли какое-то регулирование FCC против этого (над стандартным спектром Wi-Fi).
Я знаю, что это возможно, потому что именно маршрутизаторы сообщают, что они доступны для подключения. Спасибо заранее за любые данные.
Я не знаком с разработкой iOS, хотя подобные методы могут существовать.
Без корня
Но для этого требуется разрешение coarse- и/или мелкозернистого разрешения на Android
Вы можете использовать WifiManager.getScanResults()
для сканирования широковещательных сообщений беспроводного маршрутизатора.
В результаты включены сетевое "имя" (SSID) и MAC-адрес маршрутизатора (BSSID). Вы можете транслировать эти пакеты и кодировать данные в эти поля.
Тем не менее, я надеюсь, что ваши сообщения будут короткими, так как вы получите 38 байт на пакет (32 байта SSID + 6 байтов MAC-адресов).
Да, некоторые MAC-адреса являются специальными или недействительными, но если вы просто вещаете и не используете их, они все равно могут передавать данные.
С корнем
В зависимости от набора беспроводных чипсетов и драйверов вы можете включить устройство в "режим мониторинга", который дает вам доступ к необработанным пакетным данным.
Главный недостаток заключается в том, что официальной поддержки нет.
Вы можете найти некоторые хакерские способы сделать это из поиска Google, но я не смог найти универсальное решение, которое работает на всех (или даже большинстве) устройствах.