首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何编程获取设备热点的SSID和BSSID

如何编程获取设备热点的SSID和BSSID
EN

Stack Overflow用户
提问于 2019-04-22 21:45:14
回答 2查看 3.3K关注 0票数 1

我想买我自己的设备Wi-Fi SSIDBSSID name。我怎么能拿到这个?我试过这个

代码语言:javascript
运行
复制
WifiManager wifiManager = (WifiManager)getApplicationContext().getSystemService(Context.WIFI_SERVICE);
WifiConfiguration wifiConfiguration = new WifiConfiguration();
System.out.println("BSSID"+wifiConfiguration.BSSID);

但是这段代码给出了我目前连接到的设备的BSSID,但是我想通过代码获得我自己的设备BSSID ssid?请帮帮我。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-23 06:45:05

如果您想获得设备的热点SSID或BSSID,请使用以下内容:

代码语言:javascript
运行
复制
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;
    }
}

您可以将WifiManagerWifiInfo用于连接设备的Wifi信息,如下所示:

代码语言:javascript
运行
复制
WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
WifiInfo info = wifiManager.getConnectionInfo();
String ssid  = info.getSSID();
String bssid = info.getBSSID();

您需要下列权限:

代码语言:javascript
运行
复制
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

备注:从Android8.0开始,您还需要位置权限(ACCESS_COARSE_LOCATION)才能访问SSID或BSSID,因为是,而且,我认为您需要打开设备的位置设置才能工作,即使您有位置权限。

票数 2
EN

Stack Overflow用户

发布于 2019-04-22 21:53:11

添加这些权限

代码语言:javascript
运行
复制
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

然后使用这种方法

代码语言:javascript
运行
复制
public static String getBSSID(Context mContext) {
    ConnectivityManager mConnectivityManager = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo mNetworkInfo = mConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
    if(mNetworkInfo.isConnected()) {
        final WifiManager mWifiManager = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);
        final WifiInfo mWifiInfo = mWifiManager.getConnectionInfo();
        if(mWifiInfo != null) {
            return mWifiInfo.getBSSID();
        }
    }
    return null;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55801536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档