【问题标题】:Getting Wifi Information in a ArrayList在 ArrayList 中获取 Wifi 信息
【发布时间】:2018-02-11 15:48:33
【问题描述】:

我想要实现的目标是调用一个方法,该方法使用 wifi 扫描所有连接并将该信息添加到 ArrayList。我已经添加了我之前尝试过的代码,但它没有得到扫描结果。

            activity.registerReceiver(new BroadcastReceiver(){
                @Override
                public void onReceive(Context context, Intent intent) {

                    if (intent.getAction().equals(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)) {


                        List<ScanResult> results = wifiManager.getScanResults();
                        for (int counterWifi = 0; counterWifi < results.size(); counterWifi++){
                            wifiObjects.add(new WifiObject(results.get(counterWifi).BSSID, results.get(counterWifi).SSID, results.get(counterWifi).capabilities, results.get(counterWifi).frequency, results.get(counterWifi).level));
                            Log.i("------------", "-----------------");
                        }
                    }


                }
            }, intentFilter);

            // start WiFi Scan
            wifiManager.startScan();
        }

        Log.i(TAG, wifiObjects.get(0).bBsid);

更新,它现在得到结果,但不等待添加它们返回。所以 onrecieve 中的 Log.i 显示正在检索的数据,但它返回的数组列表没有新条目。

【问题讨论】:

  • 你的 Log.i(TAG, wifiObjects.get(0).bBsid);应该在扫描完成之前执行。因为扫描需要一段时间,并且在扫描完成后,会触发一个异步事件,通知您它已完成。你能看看你的日志并发布你的结果吗?

标签: java android arraylist android-wifi


【解决方案1】:

请注意,您已设置以下权限:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
// perhaps this both too.
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

如果这不能解决问题,请尝试删除startScan()

【讨论】:

  • 您好,我收到了信息,但正在发生另一个错误。你能看看你是否知道如何解决这个问题,因为我不知道该怎么做。
【解决方案2】:

请注意,您需要从 Android 6.0 开始访问位置信息,因为 wifi 信息可用于跟踪用户。

考虑到这一点,只有在您的顶部栏中激活了该位置模块(例如,您使用的是谷歌地图)并拥有上面帖子中给出的权限时,您的扫描才会成功。

【讨论】:

    猜你喜欢
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    • 2012-05-25
    • 2021-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多