В моем приложении мне нужно сканировать локальную подсеть (192.168.1. *), Чтобы собрать список MAC-адресов всех подключенных устройств.Сканирование подсети Android
Я в настоящее время используют следующую стратегию:
- запуска одновременно команды 255 пинг с
Runtime.exec("ping -c 1 <addr>")
- использования
waitFor()
на каждом из возвращенного процесса, чтобы собрать код выхода - близкие входные потоки процессов и уничтожить их
- файл
/proc/net/arp
и проанализировать MAC-адреса
В большинстве случаев это работает очень хорошо и обеспечивает быструю проверку.
Но на некоторых устройствах (например, android 1.5, а иногда и на> = 4.0) выполнение застревает при создании процесса (после того, как несколько из них были успешно запущены), и нет возможности убить текущий поток.
Вы видите что-нибудь, что я мог бы попытаться решить эту проблему? Или любая другая стратегия, которая не займет слишком много времени?