是否可以扫描所有支持WiFi的Android设备,而不仅仅是热点?

时间:2012-10-28 11:28:10

标签: android android-wifi android-wireless

我一直在尝试开发一款能够扫描附近WiFi设备的应用。我在市场上发现了很多类似的应用程序,但它们只扫描附近的热点(接入点)。是否可以扫描并查找刚刚打开WiFi的设备。

如果是这样,请告诉我如何(代码片段)..提前感谢..

3 个答案:

答案 0 :(得分:3)

答案分为两部分。

  1. 大多数WiFi设备可以在AP模式下运行(如果安装了适当的软件),在这种情况下,它们将作为扫描周围任何人的普通AP出现。
  2. 如果您想找到其他未处于AP模式的WiFi设备,您需要将设备切换到混杂(嗅探器)模式。这需要您的设备驱动程序/固件支持。在嗅探器模式下操作会导致设备指示空中的所有数据包,包括那些未发送给您的数据包。如果您的设备支持此操作模式,则需要通过发送相关命令来指示它 - 这是一个因设备软件供应商而异的专有接口。

答案 1 :(得分:0)

这些附近的设备必须发送一些信号,您的设备可以接收这些信号以便检测它们。通常他们不这样做我认为。但是,如果您可以在其他设备上安装应用程序,此应用程序可以发送广播信号,您的设备可以接收该信号。

如果没有可以收听的标准信号,则变得困难。你必须构建某种网络嗅探器。

答案 2 :(得分:0)

嗅探器是读取直接端口的过程,在这种情况下是侦听端口wifi。读端口意味着指向指定的地址并读取相同的缓冲区。此过程处于较低级别,您必须在纯C中执行此操作并在NDK中编译。如果你知道这些问题很复杂。