Итак, я несколько дней пытался получить имена хостов для IP-адресов на моем маршрутизаторе. Я перепробовал несколько вещей, но обнаружил, что, начиная с Android Q, большая часть того, что есть, устарела и не работает на моем пикселе.
Так что я пытаюсь разобраться, как это сделать , Я получаю IP-адрес от WifiManager
, а затем oop через Inetaddress от su bnet. 0-255 с использованием inetAddress.isReachable(timeout)).
getHostname()
не работает, он только возвращает IP. Поэтому я искал другой путь, так как большинство из найденных мной способов не работает.
Я столкнулся с этим в документации. «Ограничение доступа к / pro c/net файловой системе», которое исключало старое решение для чтения буфера. https://developer.android.com/about/versions/10/privacy/changes
Упоминается использование NetworkStatsManager
или ConnectivityManager
. Однако я не увидел там ничего, что позволило бы мне получить имя устройства с IP. Похоже, все дело в маршрутизаторе, а не в устройствах на нем. Однако я столкнулся с
https://developer.android.com/work/dpc/logging
setNetworkLoggingEnabled()
, используя контроллер политики устройства.
Оставляет ли inetAddress.isReachable журнал?
Если так, как использовать DeviceAdminReceiver и retrieveNetworkLogs()
для получения имени устройства?
Документация android действительно плохая. Поэтому я не могу понять, как использовать это, чтобы получить имя устройства. Прямо сейчас у меня есть список IP, но это не очень полезно. Мне нужно отфильтровать IP, поэтому я получаю только одно устройство, которое ищу. Я пробовал NSD, но он не подхватывает мое устройство и wifiP2P. Я получаю все остальное, кроме моего устройства, включая несколько случайных людей BMW.
Я нашел IP только через неадресный адрес. Так что это кажется единственным способом сделать это.