有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在Android Wifi中筛选相同的SSID?

我在安卓 wifi应用程序中工作。我从^{创建了wifi列表。现在我对两个相同的SSID有问题。我想根据最强的信号强度将两个相同的SSID缩短为一个。请帮我解决这个问题

WifiReceiver.java(extends BroadcastReceiver)

@Override
public void onReceive(final Context context, Intent intent) {

wifiSRList = wifiManager.getScanResults();

Collections.sort(wifiSRList, new Comparator<ScanResult>() {
        @Override
        public int compare(ScanResult lhs, ScanResult rhs) {
            return (lhs.level > rhs.level ? -1 : (lhs.level == rhs.level ? 0 : 1));
        }
    });
for (int i = 0; i < wifiSRList.size(); i++) {
    wifiListString[i] = (wifiSRList.get(i).SSID);
}

wifiListView.setAdapter(new ArrayAdapter<>(context, R.layout.custom_wifi_list, wifiListString));

}

共 (1) 个答案

  1. # 1 楼答案

    wifiSRList已排序,因此请尝试检查wifiListString是否包含ssid,并忽略重复项

    String ssid="";
        for (int i = 0; i < wifiSRList.size(); i++) {
            ssid=wifiSRList.get(i).SSID;
            if(!wifiListString.contains(ssid)){
                wifiListString.add(ssid);               
            }
        }
    

    但首先需要解析要列出的数组wifiListString。例如:

    Arrays.asList(wifiListString ).contains(ssid)