【发布时间】:2013-03-29 23:20:56
【问题描述】:
我正在尝试找出是否有适用于 Java 的 Wifi API。可以连接到 Wifi 网络并对其进行扫描(以查找设备)的东西。我似乎找不到类似的东西。有什么建议?谢谢!
附: 我知道适用于 Android 的 WifiManager,但我不是为 Android 开发,我正在使用 JDK 6 进行开发。
【问题讨论】:
-
我会说“除了 JNI”是不行的。这似乎是一项非常特定于操作系统的任务。例如。你必须在 Windows 上使用 WMI,在 Loonix 上使用 Wireless Tools,我猜在 OS X 上使用
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport,谁知道在其他系统上是什么。 -
我没有使用 JNI,因为我有 Ubuntu,并且在阅读 Stackoverflow 答案时,我似乎遇到了 JNI 仅适用于 Windows 的想法
-
这显然是错误的。 JNI 是 Java 不可分割的一部分,它是 Java 实际工作所需的主要 FFI 机制。 (例如,在JDK 中实现
native不是内在函数的方法。)也就是说,如果您需要创建自己的绑定,我认为JNA 应该更方便。 (实际上可能已经提供了对 WMI 内容的绑定。) -
可以给我看一个使用JNI连接wifi网络或者扫描网络等的例子吗?
-
不,因为我不知道 WMI 的实际工作原理,我害怕使用 JNI,并且相信一个完整的示例实际上超出了 SO 的范围来解释,因为涉及的移动部件的数量。也就是说,您也可以避免在 Windows 上使用 JNI(总是一件好事),因为有一个命令行工具可以这样做:hanselman.com/blog/…。您应该能够使用
ProcessBuilder运行该工具并解析其输出。
标签: java networking wifi