解决wifiInfo.getSSID()="wifi"的问题
来源:互联网 发布:淘宝详情页ps模板 编辑:程序博客网 时间:2024/05/20 16:01
今天用魅族手机测试,发现wifi名为"wifi",其它手机不是这样,比如:小米、三星、oppo。
经过调试发现,魅族手机WifiInfo信息如下:
wifiInfo =SSID: wifi, BSSID: 00:00:00:00:00:00, MAC: 00:00:00:00:00:00, Supplicant state: COMPLETED, RSSI: -1, CHANNEL:0, Link speed: 1000, Net ID: 1, Metered hint: false
其它牌子的手机WifiInfo信息如下:
wifiInfo =SSID: WOAOTPO, BSSID: 14:75:90:c8:d3:44, MAC: 02:00:00:00:00:00, Supplicant state: COMPLETED, RSSI: -30, Link speed: 144Mbps, Frequency: 2437MHz, Net ID: 8, Metered hint: false, score: 0
我们可以很明显发现魅族手机的BSSID和MAC全为零,我很想知道可不可以通过"00:00:00:00:00:00".equals(wifiInfo.getBSSID())来判断wifiInfo.getSSID()的值不正常?
当然我找到了一个可以暂时解决的办法,如下:
WifiManager wifiManager = (WifiManager) getActivity().getApplicationContext().getSystemService(Context.WIFI_SERVICE);
if ( wifiManager.isWifiEnabled() ) {
ConnectivityManager connManager = (ConnectivityManager) getActivity().getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mWifi = connManager
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
if ( WifiInfo.getDetailedStateOf(wifiInfo.getSupplicantState()) == NetworkInfo.DetailedState.CONNECTED
|| mWifi.isConnected())
{
String _connectedSsid = wifiInfo.getSSID();
int iLen = _connectedSsid.length();
if (iLen == 0) {
errMsg = getStringForFrag(R.string.tips_wifi_not_connect);
return false;
}
if ( _connectedSsid.startsWith("\"") && _connectedSsid.endsWith("\"") ) {
_connectedSsid = _connectedSsid.substring(1, iLen - 1);
}
if("wifi".equals(_connectedSsid)){
String anotherWifi=mWifi.getExtraInfo();
if(anotherWifi==null){
mWifiName = _connectedSsid;
}else {
if(anotherWifi.startsWith("\"") && anotherWifi.endsWith("\""))
anotherWifi=anotherWifi.substring(1,anotherWifi.length()-1);
mWifiName=anotherWifi;
}
}else {
mWifiName = _connectedSsid;
}
}else{
errMsg = getStringForFrag(R.string.tips_wifi_not_connect);
return false;
}
}
经过调试发现,魅族手机WifiInfo信息如下:
wifiInfo =SSID: wifi, BSSID: 00:00:00:00:00:00, MAC: 00:00:00:00:00:00, Supplicant state: COMPLETED, RSSI: -1, CHANNEL:0, Link speed: 1000, Net ID: 1, Metered hint: false
其它牌子的手机WifiInfo信息如下:
wifiInfo =SSID: WOAOTPO, BSSID: 14:75:90:c8:d3:44, MAC: 02:00:00:00:00:00, Supplicant state: COMPLETED, RSSI: -30, Link speed: 144Mbps, Frequency: 2437MHz, Net ID: 8, Metered hint: false, score: 0
我们可以很明显发现魅族手机的BSSID和MAC全为零,我很想知道可不可以通过"00:00:00:00:00:00".equals(wifiInfo.getBSSID())来判断wifiInfo.getSSID()的值不正常?
当然我找到了一个可以暂时解决的办法,如下:
WifiManager wifiManager = (WifiManager) getActivity().getApplicationContext().getSystemService(Context.WIFI_SERVICE);
if ( wifiManager.isWifiEnabled() ) {
ConnectivityManager connManager = (ConnectivityManager) getActivity().getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mWifi = connManager
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
if ( WifiInfo.getDetailedStateOf(wifiInfo.getSupplicantState()) == NetworkInfo.DetailedState.CONNECTED
|| mWifi.isConnected())
{
String _connectedSsid = wifiInfo.getSSID();
int iLen = _connectedSsid.length();
if (iLen == 0) {
errMsg = getStringForFrag(R.string.tips_wifi_not_connect);
return false;
}
if ( _connectedSsid.startsWith("\"") && _connectedSsid.endsWith("\"") ) {
_connectedSsid = _connectedSsid.substring(1, iLen - 1);
}
if("wifi".equals(_connectedSsid)){
String anotherWifi=mWifi.getExtraInfo();
if(anotherWifi==null){
mWifiName = _connectedSsid;
}else {
if(anotherWifi.startsWith("\"") && anotherWifi.endsWith("\""))
anotherWifi=anotherWifi.substring(1,anotherWifi.length()-1);
mWifiName=anotherWifi;
}
}else {
mWifiName = _connectedSsid;
}
}else{
errMsg = getStringForFrag(R.string.tips_wifi_not_connect);
return false;
}
}
阅读全文
0 0
- 解决wifiInfo.getSSID()="wifi"的问题
- Android wifi的WifiInfo对象详解
- Ubuntu解决华硕x550C的WiFi问题
- 解决ubuntu14 的wifi无法使用的问题
- defy解决wifi上网问题
- android 解决wifi断线不稳定的问题-终极办法
- Android 解决黑屏时wifi断开连接的问题
- 配置电脑wifi热点遇到的问题及解决
- 解决Ubuntu下无法wifi上网的问题
- 解决Ubuntu 14.04的enable wifi问题(ASUS F552CL)
- 解决卸载wifi共享软件后无法连网的问题
- 解决Ubuntu16.04无法启用WiFi的问题
- 解决iOS10不能跳转系统WiFi列表的问题
- 解决Ubuntu16.04连接不上wifi的问题
- 解决Ubuntu16.04网络图标启用wifi不见的问题
- 解决猎豹免费wifi开启不了的问题
- 关于NetKeeper(创翼) 4.7.9.589升级后,无法使用猎豹WIFI共享WIFI问题的解决
- 解决WIFI驱动RTL8188无法在rk3168平板Android4.2启动wifi的问题
- synchronization(序列化,同步)的理解
- Postman接口测试工具的使用_2
- Spring框架入门
- Visual Studio常见的文件后缀名
- Java创建文件和文件夹
- 解决wifiInfo.getSSID()="wifi"的问题
- linux vim 指令图
- Linux rpm包操作指令
- 正则表达式必知必会笔记
- 管道物流概述
- 欢迎使用CSDN-markdown编辑器
- java常用类--Math
- Maven实战(八)——常用Maven插件介绍(下)
- Construct 2 上手快的游戏制作平台(二)