我正在尝试检测wifi连接中的信号强度变化.我对我应该在BroadcastReceiver中使用哪种方法感到困惑.使用getConnectionInfo()和getScanResults()之间有什么区别 - 然后我可以使用相关方法来获取rssi值?
例如:如果我使用getConnectionInfo(),那么稍后我会使用getRssi().或者我可以使用getScanResults()和"level"属性.
我使用Toast显示它们的值,但它并不总是显示相同的值.当wifi conn丢失时,getConnectionInfo().getRssi()显示-200,而result.level仍显示其先前的值.
有什么想法吗?谢谢!
String netSSID = wifi.wifiMgr.getConnectionInfo().getSSID();
int netRSSI = wifi.wifiMgr.getConnectionInfo().getRssi();
List<ScanResult> results = wifi.wifiMgr.getScanResults();
for (ScanResult result : results) {
if (result.SSID.equalsIgnoreCase(netSSID)) {
anothernetRSSI = result.level;
}
}
Run Code Online (Sandbox Code Playgroud)
getScanResults()仅当您使用时才使用startScan()。扫描是异步的,SCAN_RESULTS_AVAILABLE_ACTION完成后发送广播。而且,扫描结果将针对扫描找到的任何接入点,其中可能包括除您所连接的接入点之外的接入点(如果您连接到任何设备)。
| 归档时间: |
|
| 查看次数: |
4156 次 |
| 最近记录: |