查看: 1261|回复: 0

[技术交流] 关于Android 9 SSID为空的解决方案

[复制链接]

23

主题

23

帖子

70

积分

助理工程师

Rank: 1

积分
70
发表于 2019-8-12 11:21:49 | 显示全部楼层 |阅读模式
最近,有客户反馈Android 9.0及其以上版本的APP获取SSID失败,于是开一篇与此相关的帖子。
Andriod 9.0相比于8.1而言,其获取SSID时需要的权限增加了,增加了以下两个:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
同时,也需要在build.gradle文件中申明:
implementation 'ru.alexbykov:nopermission:1.1.2'处理完以后,编译下载,oneplus和xiaomi手机通过,SSID成功获取;新版本APK发给客户;客户再次反映华为手机依旧为null重新排查发现,华为的Android9.0手机通过NetworkInfo.getExtraInfo()接口返回为空,只好采用列表比对的方法进行处理,代码如下:WifiManager mwifiManager=(WifiManager)this.getApplication().getApplicationContext().getSystemService(Context.WIFI_SERVICE);
if(null!=mwifiManager){
    WifiInfo info=mwifiManager.getConnectionInfo();
    int networkId=info.getNetworkId();
    List<WifiConfiguration> netConList=mwifiManager.getConfiguredNetworks();
    for(WifiConfiguration wificonf:netConList){
        if (wificonf.networkId==networkId){
            mSsid=(wificonf.SSID).replace("\"","");
        }
    }
}
其中mSsid为String形式的SSID。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表