写点什么

Android 开发:获取手机当前连接的 WiFi 名称

用户头像
三掌柜
关注
发布于: 3 小时前

在 Android 开发过程中,有时候需要使用获取手机当前连接的 WiFi 的功能,这样就省去了手动输入 WiFi 名称的步骤,这种需求一般都是涉及到手机 App 和硬件设备进行 WiFi 通讯的时候会用到。


那么本篇博文就来分享一下 Android 手机 App 自动获取当前手机连接 WiFi 名称的方法。

一、给 App 添加权限

打开项目工程,在 AndroidMainfest.xml 文件里加入权限,具体操作如下所示。

1、获取 WIFI 信息状态的权限

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

2、获取网络状态改变的权限

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

如图所示


二、在 activity 中添加代码

1、获取 WiFi 名称

private String getConnectWifiSsid(){
  WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
  WifiInfo wifiInfo = wifiManager.getConnectionInfo();
  Log.d("wifiInfo------", wifiInfo.toString());
  Log.d("SSID------", wifiInfo.getSSID());
  return wifiInfo.getSSID();
}
复制代码

点击进入 WIFI_SERVICE,看到的是系统的 WiFi 名称是加的有双引号的,具体如下所示:



根据系统的 WiFi 名称包含一个双引号,需要进行处理,具体处理步骤如下所示:

方法一:

        String wifiInfo1 = wifiInfo.getSSID();

        if (wifiInfo1.contains("\"")) {

            wifiInfo1 = wifiInfo1.substring(1, wifiInfo1.length() - 1);

        }

方法二:

String wifiInfo1 = wifiInfo.getSSID().replace("\"", "").replace("\"", "");


以上两种方法任选一种即可,去掉双引号之后,返回的才是真正的 WiFi 名称,最终写法如下所示:

private String getConnectWifiSsid() {
            WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE);
            WifiInfo wifiInfo = wifiManager.getConnectionInfo();
//        //去掉带引号的字符串方法一
//        String wifiInfo1 = wifiInfo.getSSID();
//        if (wifiInfo1.contains("\"")) {
//            wifiInfo1 = wifiInfo1.substring(1, wifiInfo1.length() - 1);
//        }
        //去掉带引号的字符串方法二
        String wifiInfo1 = wifiInfo.getSSID().replace("\"", "")
                .replace("\"", "");
        return wifiInfo1;
    }
复制代码


该接口返回当前连接的 WiFi 的 wifiInfo.getSSID(),也就是 WiFi 名字。

三、具体使用场景

本案例的需求是,获取到手机当前连接的 WiFi 名称,然后直接给 WiFi 名称的 EditText 控件赋值。具体使用场景如下所示:

private void initView() {
        //开始配置WiFi按钮点击事件
        textView = (TextView) findViewById(R.id.tv_setting_start_configuring);
        textView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                    String wifiName = getConnectWifiSsid(); //获取赋值WiFi名称
            }
        });
    }
复制代码


具体效果如下所示


以上就是本章的全部内容,欢迎关注三掌柜的微信公众号“程序猿 by 三掌柜”,三掌柜的新浪微博“三掌柜 666”,欢迎关注!

发布于: 3 小时前阅读数: 3
用户头像

三掌柜

关注

某某某技术有限责任公司架构师 2021.02.05 加入

一分耕耘,不一定有一分收获,但十分耕耘,一定会有一分收获!

评论 (1 条评论)

发布
用户头像
8月日更第八天
3 小时前
回复
没有更多了
Android开发:获取手机当前连接的WiFi名称