Android网络中每秒扫描WiFi网络的问题
问题描述:
我试图通过我的Android设备扫描可用的wifi网络。这里的代码块 -Android网络中每秒扫描WiFi网络的问题
WifiManager wifiManager = (WifiManager)getSystemService(WIFI_SERVICE);
registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
WifiManager wifiManager = (WifiManager)getSystemService(WIFI_SERVICE);
List<ScanResult> results = wifiManager.getScanResults();
//int newRSSI= intent.getIntExtra(wifiManager.EXTRA_NEW_RSSI, 0);
//WifiDistance wifi_dis = new WifiDistance();
for (ScanResult result : results) {
textView.append("\nSSID="+result.SSID + ", " + "Strength(dBm)=" + result.level + ", AP: "+ result.BSSID);
wifi+="\n"+result.SSID + ", " + result.level + ", "+ result.BSSID;
//WifiDistance.getWifiDistance().distanceCalc(result.BSSID, result.level);
},
new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
// Initiate a scan.
wifiManager.startScan();
}
我已经把它放在一个动作处理程序,如如果一个按钮被按下,它开始扫描。现在我的问题是,当我的手机连接到特定网络时,它不会自动更新无线网络扫描结果。它只是保留旧数据。我想按下按钮开始扫描并每秒更新扫描结果。
我在HTC Magic中使用OS 2.1。
任何人都可以帮助我吗?
答
究竟如何尝试每秒更新扫描结果?
它在我看来只是在收到广播时才更新列表,而开始扫描码出现在列表填充后。
相反,您可以使用计时器任务来更新运行一个独立的方法,该方法每秒更新一次Scanresult列表,然后再次运行For-Loop。
类似:
Public void RunEverySecond(){
List<ScanResult> results = wifiManager.getScanResults();
for (ScanResult result : results) {
textView.append("\nSSID="+result.SSID + ", " + "Strength(dBm)=" + result.level + ", AP: "+ result.BSSID);
wifi+="\n"+result.SSID + ", " + result.level + ", "+ result.BSSID;
}
}
可能?
谢谢...而不是使用循环我刚刚创建一个使用计时器的线程。看着你的时间选项,它进入了我的想法,它的工作。非常感谢 :)。 – Pow 2011-06-14 08:11:27