我无法通过Google Pixel 3中的代码获取Wi-FI信息,例如SSID名称。
它适用于三星S10,一加6等其他设备。
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
if (wifiInfo != null) {
NetworkInfo.DetailedState state =WifiInfo.getDetailedStateOf(wifiInfo.getSupplicantState());
if (state == NetworkInfo.DetailedState.CONNECTED || state == NetworkInfo.DetailedState.OBTAINING_IPADDR) {
return wifiInfo.getSSID();
}
}
我认为这个问题与Android最新版本有关。
你需要CHANGE_WIFI_STATE
Android Pie。
您可以从此链接尝试我的解决方案
希望它对你有用!
我把它和BroadcastReceiver一起使用。我的使用代码尝试这个;
private boolean checkInternet(Context context) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = cm.getActiveNetworkInfo();
return networkInfo != null && networkInfo.isConnected();
}
您必须先在清单文件中添加这些权限。
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
现在,将此代码添加到您的活动中。
ConnectivityManager connManager = (ConnectivityManager) activity.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (networkInfo.isConnected()) {
WifiManager wifiManager = (WifiManager) activity.getApplicationContext().getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
wifiInfo.getSSID();
String name = networkInfo.getExtraInfo();
String ssid = """ + wifiInfo.getSSID() + """;
}
它将帮助您在馅饼设备中获取 wifi 名称。