Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用Kotlin获取WiFi扫描结果列表_Android_Kotlin_Android Wifi - Fatal编程技术网

Android 使用Kotlin获取WiFi扫描结果列表

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

我需要在android应用程序中扫描wifi接入点列表。我以前使用java做过,但是我在让kotlin代码正常工作时遇到了麻烦

我的代码:

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我知道这是显而易见的!再次感谢你,我的朋友。