在我的应用中,我需要扫描本地子网(192.168.1.*)以收集所有已连接设备的MAC地址列表。
我目前使用以下策略:
1.同时启动255个ping命令:`Runtime.exec("ping -c 1 ")`
2.在每个返回进程上使用`waitFor()`来收集退出代码
3.关闭进程的输入流并销毁它们
4.读取`/proc/net/arp`文件并解析MAC地址
在大多数情况下,这种方法非常有效,并提供快速扫描。但是在某些设备上(例如Android 1.5,有时在>=4.0),执行会卡在进程创建时(在成功启动几个进程后),没有办法杀死运行线程。
您是否看到我可以尝试解决此问题的任何方法?或者任何其他不需要太长时间的策略?
我目前使用以下策略:
1.同时启动255个ping命令:`Runtime.exec("ping -c 1 ")`
2.在每个返回进程上使用`waitFor()`来收集退出代码
3.关闭进程的输入流并销毁它们
4.读取`/proc/net/arp`文件并解析MAC地址
在大多数情况下,这种方法非常有效,并提供快速扫描。但是在某些设备上(例如Android 1.5,有时在>=4.0),执行会卡在进程创建时(在成功启动几个进程后),没有办法杀死运行线程。
您是否看到我可以尝试解决此问题的任何方法?或者任何其他不需要太长时间的策略?