我可以使用代码String ssid = wifiInfo.getSSID()来获取WiFi的名称, 但是你知道很多WiFi都有同名的“MyWiFi”,我希望得到一个WiFi的唯一ID,我该怎么办?谢谢!
提示: 我希望只有当我连接到名为“MyWiFi”的家庭WiFi时,才能在我的应用程序中上传文件,但在其他地方,有许多名为“MyWiFi”的WiFi。
if (intent.getAction().equals(WifiManager.NETWORK_STATE_CHANGED_ACTION)) {
NetworkInfo networkInfo = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
if (networkInfo.isConnected()) {
// Wifi is connected
WifiManager wifiManager = (WifiManager) context .getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
String ssid = wifiInfo.getSSID();
Toast.makeText(context, "OK " + ssid, Toast.LENGTH_LONG).show();
}
} else if(intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
NetworkInfo networkInfo = intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
if(networkInfo.getType() == ConnectivityManager.TYPE_WIFI && ! networkInfo.isConnected()) {
Toast.makeText(context, "Wifi is disconnected: "+String.valueOf(networkInfo), Toast.LENGTH_LONG).show();
}
}
答案 0 :(得分:2)
尝试使用以下网络ID。
getNetworkId()
用于在对请求者执行操作时识别网络。
更新您的代码
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
String ssid = wifiInfo.getSSID();
int networkid = wifiInfo.getNetworkId();
Toast.makeText(context, "OK " + ssid, Toast.LENGTH_LONG).show();
Toast.makeText(context, "Network ID " + networkid, Toast.LENGTH_LONG).show();
答案 1 :(得分:0)
添加的任何wifi的唯一ID是NETWORK_ID [请求者用于识别此网络配置条目的ID号。]。
我如何获得网络ID?
如果您有WifiConfiguration对象,您将获得其网络ID
关于apis的更多信息,请here
答案 2 :(得分:0)
您可以将BSSID用作唯一标识符 https://en.wikipedia.org/wiki/Service_set_(802.11_network)#Basic_service_set_identification_.28BSSID.29
50&60&70&80