我目前正在开发一个将在 Google Glass 设备上安装和运行的原生 Android 应用程序。此应用程序的要求之一是我主动读取 wifi 网络的频率和级别信息。
这通常在 Android 中通过以下几行来完成:
this.registerReceiver(BROADCAST_RECEIVER_HERE, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
((WifiManager) getSystemService(Context.WIFI_SERVICE)).startScan();
在传统的 Android 设备上运行时,我的广播接收器(由 BROADCAST_RECEIVER_HERE 占位符指定)每秒接收更新的 wifi 扫描结果。在 Glass 上运行相同的应用程序时,结果仍然每秒出现一次,但实际 wifi 级别值似乎仅每 4-5 次扫描结果或 5-6 秒更改一次。
这是一个错误还是为了电池寿命而做出的有意识的决定?无论如何,我是否可以配置 WifiManager 以便它接收每个扫描结果的更新级别?
编辑: 这是一些示例日志。每行包含一个时间戳和两个特定无线网络的 ScanResult 对象中报告的强度级别。
在安卓上运行
16:01:05.864: -43.0 -46.0
16:01:07.185: -43.0 -45.0
16:01:08.520: -49.0 -50.0
16:01:09.841: -48.0 -53.0
16:01:11.161: -48.0 -53.0
16:01:12.489: -47.0 -45.0
16:01:13.810: -45.0 -52.0
16:01:15.192: -51.0 -51.0
16:01:16.497: -45.0 -46.0
16:01:17.833: -45.0 -46.0
在玻璃上跑步
16:04:14.089: -42.0 -41.0
16:04:15.097: -42.0 -41.0
16:04:16.097: -42.0 -39.0
16:04:17.152: -42.0 -39.0
16:04:18.183: -42.0 -39.0
16:04:19.222: -42.0 -39.0
16:04:20.238: -42.0 -39.0
16:04:21.246: -42.0 -42.0
16:04:22.253: -43.0 -41.0
16:04:23.253: -43.0 -41.0