基本上,我可以通过SimpleAdapter在ListView中列出RSSI的值。
public class ActivityListarRedes extends MainActivity {
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1)
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listar_redes);
List<Map<String, String>> l = listaRedes();
String[] from = { "ExampleId", "ExampleName" };
int[] to = { android.R.id.text1, android.R.id.text2 };
SimpleAdapter ad = new SimpleAdapter(this, l, simple_list_item_2, from, to);
ListView lv = (ListView) findViewById(R.id.list);
lv.setAdapter(ad);
}
public List<Map<String, String>> listaRedes() {
networks = new ArrayList<ScanResult>();
wifi.startScan();
networks = wifi.getScanResults();
List<Map<String, String>> l = new ArrayList<Map<String, String>>();
for (ScanResult net : networks) {
Map<String, String> m = new HashMap<String, String>();
m.put("ExampleId", "Rede: " + net.SSID);
m.put("ExampleName", "RSSI: " + net.level + "dBm");
l.add(m);
}
return l;
}
现在,我想知道是否可以更新方法“listaRedes”(List)给出的RSSI值。也许我可以在一段时间内调用方法“listaRedes”,直到我暂停它或点击某个按钮暂停。
那可能吗?
谢谢
答案 0 :(得分:0)
更新:您可以使用Android设备查看我的演示进行RF测量,点击此处:
https://github.com/panosvas/Measurements
您可以在其中一个接一个地找到WiFi测量的实现。我还创建了一个用于存储这些测量的服务器以及一个使用UDP数据包的远程触发器应用程序,您可以在此处找到:
https://github.com/panosvas/IndoorPositioningServer
可以更新您的列表。您可以在这里查看我的答案:
Wifi Scanner which scans 20 times
为了使其适应您的需要,每次再次触发调用startScan()方法的任务时,在onRecieve中都不需要计数器而不是计数器。
不要忘记在onDestroy上取消注册侦听器。
希望这有帮助。