我想获取自己的设备 Wi-Fi SSID
和 BSSID 名称
。
我怎样才能得到这个?
我试过这个
WifiManager wifiManager = (WifiManager)getApplicationContext().getSystemService(Context.WIFI_SERVICE);
WifiConfiguration wifiConfiguration = new WifiConfiguration();
System.out.println("BSSID"+wifiConfiguration.BSSID);
但是这段代码给出了我当前连接的设备的BSSID,但我想通过代码获取我自己的设备BSSID
ssid
?
请帮助我。
最佳答案
如果您想获取设备的热点 SSID 或 BSSID,请使用如下内容:
WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
Method[] methods = wifimanager.getClass().getDeclaredMethods();
for (Method m: methods) {
if (m.getName().equals("getWifiApConfiguration")) {
WifiConfiguration config = (WifiConfiguration)m.invoke(wifimanager);
String ssid = config.SSID;
String bssid = config.BSSID;
}
}
您可以使用WifiManager
和 WifiInfo
获取设备连接的 Wifi 信息,如下所示:
WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
WifiInfo info = wifiManager.getConnectionInfo();
String ssid = info.getSSID();
String bssid = info.getBSSID();
您需要以下权限:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
注意:自 Android 8.0 起,您还需要位置权限 (ACCESS_COARSE_LOCATION) 才能访问 SSID 或 BSSID,因为 this另外,我认为即使您拥有位置权限,您也需要打开设备的位置设置才能使其正常工作。
关于android - 如何以编程方式获取我的设备的热点 SSID 和 BSSID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55801536/