一直都在做wifi相关的东西
今天遇到一个问题是8.0的机型无法获取到ssid
然后就查询了一番 终于找到解决方案
wifi名称获取代码
WifiManager my_wifiManager = ((WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE));
assert my_wifiManager != null;
wifiInfo = my_wifiManager.getConnectionInfo();
ssid = wifiInfo.getSSID();复制代码
8.0 解决方案两个方法
一、就是用下面的代码可以获取(不建议使用)
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.O) {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
assert cm != null;
NetworkInfo info = cm.getActiveNetworkInfo();
if (info != null && info.isConnected()) {
ssid = info.getExtraInfo();
logger.info("WiFi SSID: " + ssid);
}复制代码
二、申请权限 定位权限就好了
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />复制代码
9.0在8.0基础上新增权限
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
复制代码
9.0华为手机无法获取解决方案
WifiManager my_wifiManager = ((WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE));
assert my_wifiManager != null;
wifiInfo = my_wifiManager.getConnectionInfo();
ssid = wifiInfo.getSSID();
int networkId = wifiInfo.getNetworkId();
List<WifiConfiguration> configuredNetworks = my_wifiManager.getConfiguredNetworks();
for (WifiConfiguration wifiConfiguration:configuredNetworks){
if (wifiConfiguration.networkId==networkId){
ssid=wifiConfiguration.SSID;
break;
}复制代码
权限申请
使用开源库
implementation 'com.yanzhenjie:permission:2.0.0-rc12'
复制代码
if (AndPermission.hasPermissions(this, Manifest.permission.ACCESS_WIFI_STATE, Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION)) {
if (NetUtils.getInstance().isWifi(TabActivity.this)) {
startActivity(new Intent(TabActivity.this, WifiManagerActivity.class));
overridePendingTransition(R.anim.in_from_right, R.anim.out_to_right);
} else {
com.xinli.wenet.utils.Toast.show(TabActivity.this, "请连接Wi-Fi后操作", 1);
} else {
requestPermission(Manifest.permission.ACCESS_WIFI_STATE, Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION);
}复制代码