问题描述
拥有了ACCESS_WIFI_STATE、ACCESS_NETWORK_STATE、ACCESS_FINE_LOCATION等权限后,获取当前链接Wifi的Ssid依然返“unknown ssid”
手动解决
检查手机是否打开了位置信息,即手机是否允许定位。一般在下拉菜单栏中有个"位置信息"开关。
代码判断
可以使用LocationManager判断是否开启了网络定位。
/**
* 判断是否打开网络定位
* @param context 用于获取LocationManager
* @return true/false
*/
public static boolean isOpenGps(Context context){
LocationManager locationManager = (LocationManager)context.getSystemService(Context.LOCATION_SERVICE);
if (locationManager != null){
//这里只判断了是否开启网络定位
//还有GPS定位 LocationManager.GPS_PROVIDER
return locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
}else {
return false;
}
}
获取网络信息的工具类
最后附上最近写的获取网络信息的一个工具类,需要在Application中调用init()。
工具类的GitHub地址