是否可以在不打开Wifi的情况下扫描wifi AP?我构建了一个扫描wifi AP的应用程序。如果wifi被禁用,该应用程序会打开和关闭wifi进行扫描。但我注意到一个问题,当我使用智能手机作为接入点时,当应用程序打开 wifi 时,我的智能手机不再是接入点。
如果这是不可能的,并且没有其他方法可以做到这一点,我必须接受这个“问题”..
好奇心:是否可以在用户“不可见”的情况下打开和关闭wifi?
即使在最新的 Android 版本(KitKat)中有一个“仅扫描”模式的选项,但在禁用 WiFi 的情况下无法获得扫描结果。没有办法让它从用户的角度完全隐藏。然而,在“仅扫描”模式下,获取扫描结果基本上是即时操作(因为它们已经可用),因此几乎不会被注意到。请注意,此模式可以禁用。 所以,在你的地方我会做同样的事情:打开 WiFi,获取扫描结果,关闭 WiFi。安全、便捷、兼容。 至于同时使用 AP(所谓的
SoftAP)和 WiFi(所谓的
Station)的用例 - 在担任主要 Android 手机 OEM 之一的 WiFi 工程师时,我不知道有任何Android WiFi 解决方案能够同时运行SoftAP 和Station。这主要是由于手机的技术限制和功耗造成的。 在没有打开 Wifi 的情况下扫描 Wifi 接入点就像在不运行相机应用程序或不取下相机镜头盖的情况下拍照一样! :)
Is it possible to turn on and off wifi without being "visible" for the user?
你说的
being visible
是什么意思。如果您的 wifi 配置为充当 AP,您应该创建一个隐藏的 AP,如果没有,您就不是 AP 并且不可见。
我只是猜测一个可能有效的解决方案,当您的应用程序打开 wifi 时,只需等到您的 wifi 作为 AP 启动,然后尝试扫描。
连接无线网络
关闭Wifi
WifiManager wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
wifiManager.setWifiEnabled(false);
我不知道这是如何执行的,但我有这样的情况,即使在禁用 WIFI 的情况下我也能得到扫描结果。 我通过服务调用 wifiManager.startScan() 。 看起来只有系统扫描被禁用,而 WIFI 被禁用。 问候,