Android 使用Kotlin获取WiFi扫描结果列表
我需要在android应用程序中扫描wifi接入点列表。我以前使用java做过,但是我在让kotlin代码正常工作时遇到了麻烦 我的代码:Android 使用Kotlin获取WiFi扫描结果列表,android,kotlin,android-wifi,Android,Kotlin,Android Wifi,我需要在android应用程序中扫描wifi接入点列表。我以前使用java做过,但是我在让kotlin代码正常工作时遇到了麻烦 我的代码: var resultList = ArrayList<ScanResult>() lateinit var wifiManager: WifiManager val broadcastReceiver = object : BroadcastReceiver() { override fun onReceive(contxt: Cont
var resultList = ArrayList<ScanResult>()
lateinit var wifiManager: WifiManager
val broadcastReceiver = object : BroadcastReceiver() {
override fun onReceive(contxt: Context?, intent: Intent?) {
resultList = wifiManager.scanResults as ArrayList<ScanResult>
Log.d("TESTING", "onReceive Called")
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
wifiManager = this.applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager
}
override fun onGridTileClicked(x: Int, y: Int) {
startScanning()
}
fun startScanning() {
registerReceiver(broadcastReceiver, IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION))
Handler().postDelayed({
stopScanning()
}, 10000)
}
fun stopScanning() {
unregisterReceiver(broadcastReceiver)
val axisList = ArrayList<Axis>()
for (result in resultList) {
axisList.add(Axis(result.BSSID, result.level))
}
Log.d("TESTING", axisList.toString())
}
var resultList=ArrayList()
lateinit变量wifiManager:wifiManager
val broadcastReceiver=对象:broadcastReceiver(){
覆盖接收(上下文?、意图?){
resultList=wifiManager.scanResults作为ArrayList
Log.d(“测试”,“调用onReceive”)
}
}
重写创建时的乐趣(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
wifiManager=this.applicationContext.getSystemService(Context.WIFI\u服务)作为wifiManager
}
覆盖未选中的控件(x:Int,y:Int){
开始扫描()
}
有趣的开始扫描(){
registerReceiver(broadcastReceiver,IntentFilter(WifiManager.SCAN\u RESULTS\u AVAILABLE\u ACTION))
Handler().postDelayed({
停止扫描()
}, 10000)
}
有趣的停止扫描(){
未注册接收器(广播接收器)
val axisList=ArrayList()
对于(结果列表中的结果){
添加(Axis(result.BSSID,result.level))
}
Log.d(“测试”,axisList.toString())
}
onReceive()函数从未被调用,我在清单中声明了ACCESS\u FINE\u位置和ACCESS\u WIFI\u状态,因此我不确定我做错了什么。我肯定我遗漏了一些明显的东西,但如果能提供一些帮助,我将不胜感激。谢谢 你忘了开始扫描。添加
wifiManager.startScan()method@StefanGolubovi我知道这是显而易见的!再次感谢你,我的朋友。