扫描结果用两个字符串设置我的变量,但返回值只有一个


String essidPrefix = MainFragment.configuration.getEssidPrefix();
wifiManager.startScan();
results = wifiManager.getScanResults();
for(ScanResult scanResult : results){
String scanWifi = scanResult.SSID;
if(scanWifi.startsWith(essidPrefix)){
bssid = scanResult.BSSID;
//bssid now has two strings, abc123 and abc1234 for example
}
}
//bssid here only returns abc123
return bssid;

如代码所示,如何将abc123abc1234scanResults.BSSID连接在一起,以便能够将其作为一个字符串返回?

如果我得到你的问题。

Java/Android中的字符串concat。

bssid = bssid+","+scanResult.BSSID; // comma separate

编辑

根据评论..您需要重置它。bssid = "";所以你的代码将看起来像这样。

List<String> ids = new ArrayList<String>();
String essidPrefix = MainFragment.configuration.getEssidPrefix();
wifiManager.startScan();
results = wifiManager.getScanResults();
bssid = ""; // this will reset it
for(ScanResult scanResult : results){
String scanWifi = scanResult.SSID;
if(scanWifi.startsWith(essidPrefix)){
// if you want to avoid null
ids.add(scanResult.BSSID); // comma separate
}
}
//bssid here only returns abc123
return bssid = android.text.TextUtils.join(",", ids);

你应该使用StringBuilder(Not thread safe( 类进行连接,而不是使用"+"运算符(因为它会消耗更多内存(。

String essidPrefix = MainFragment.configuration.getEssidPrefix();
wifiManager.startScan();
results = wifiManager.getScanResults();
StringBuilder sb = new StringBuilder();
for(ScanResult scanResult : results){
String scanWifi = scanResult.SSID;
if(scanWifi.startsWith(essidPrefix)){
sb.append(scanResult.BSSID).append(",");
}
}
sb.deleteCharAt((sb.length() - 1));
return sb.toString();

最新更新