如何在安卓扫描结果中过滤特定的SSID



我是Android开发的新手,我正在开发一个应用程序,该应用程序可以扫描所有可用的WI-FI,然后在列表中显示它们,并且它工作正常,这是代码:

private var wifiManager: WifiManager? = null
private val arrayList = ArrayList<String>()
private var adapter: ArrayAdapter<*>? = null
private var wifiReceiver: BroadcastReceiver = object : BroadcastReceiver() {
    override fun onReceive(context: Context, intent: Intent) {
        val results = wifiManager!!.scanResults
        unregisterReceiver(this)
        for (scanResult in results) {
            arrayList.add(scanResult.SSID)
            adapter!!.notifyDataSetChanged()
        }
    }
}
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    wifiManager = applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager
    adapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, arrayList)
    val wifi = AlertDialog.Builder(this)
    wifi.setTitle("Wifi scan list")
    wifi.setAdapter(adapter) { dialog, which ->
    }
    wifi.create()
    wifi.show()
}

但是现在我想从包含" _ "的wifi扫描列表中隐藏一些ssid。如何从wifi扫描列表中隐藏这些SSID?

只需更改为以下内容:

for (scanResult in results) {
    if (!scanResult.SSID.contains("_") {
        arrayList.add(scanResult.SSID)
        adapter!!.notifyDataSetChanged()
    }
}
  for (scanResult in results) {
     if(!scanResult.SSID.matches("(.*)_(.*)")) {
        arrayList.add(scanResult.SSID)
        adapter!!.notifyDataSetChanged()
        }
    }

最新更新