美文网首页
安卓代码控制WiFi连接适配备忘

安卓代码控制WiFi连接适配备忘

作者: 方凌川 | 来源:发表于2017-10-11 19:54 被阅读0次

    1、获取WiFi列表为空

    部分手机使用以下代码获取WiFi列表,结果为空;

           // 得到扫描wifi列表结果
            mWifiList = mWifiManager.getScanResults();
    

    而打开手机的GPS之后,可以获取到完整的WiFi列表。

    原因如下:

    Android6.0(API level 23)在系统和API上都有着诸多的改变,为了更好的保护用户的数据,Android移除了从代码中通过Wi-Fi和蓝牙的API访问设备本地网络标识符。因此WifiInfo.getMacAddress()和BluetoothAdapter.getAddress()将始终返回02:00:00:00:00:00
    而为了能够通过Wi-Fi和蓝牙扫描时,获取周边设备的硬件标识符,应用必须具有ACCESS_FINE_LOCATION 和 ACCESS_COARSE_LOCATION权限:
    WifiManager.getScanResults()
    BluetoothDevice.ACTION_FOUND
    BluetoothLeScanner.startScan()
    更多相关内容可【点击这里】查看!

    2、使用WiFi名称字符串连接失败

    目前网上的写法都是config.SSID = "\"" + SSID + "\"";这种价双引号的,在华为Mate 9上是连接失败; 而去掉双引号的写法可以连接成功,而且测试另外三星s7 Edge也是可以的,如下:

            WifiConfiguration config = new WifiConfiguration();
            config.allowedAuthAlgorithms.clear();
            config.allowedGroupCiphers.clear();
            config.allowedKeyManagement.clear();
            config.allowedPairwiseCiphers.clear();
            config.allowedProtocols.clear();
            config.SSID = SSID;//"\"" + SSID + "\"";加双引号的就是不行
    
    目前原因尚不明确,所以先记录下来!

    相关文章

      网友评论

          本文标题:安卓代码控制WiFi连接适配备忘

          本文链接:https://www.haomeiwen.com/subject/kjqgyxtx.html