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

在Android开发过程中,有时候需要使用获取手机当前连接的WiFi的功能,这样就省去了手动输入WiFi名称的步骤,这种需求一般都是涉及到手机App和硬件设备进行WiFi通讯的时候会用到,那么本篇博文就来分享一下Android手机App自动获取当前手机连接WiFi名称的方法。具体步骤如下所示。

一、给App添加权限

打开项目工程,在AndroidMainfest.xml文件里加入权限:

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

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

如图所示:

Android开发:获取手机当前连接的WiFi名称_第1张图片

二、在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名称是加的有双引号的,具体如下所示:

Android开发:获取手机当前连接的WiFi名称_第2张图片

Android开发:获取手机当前连接的WiFi名称_第3张图片

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

方法一:

        String wifiInfo1 = wifiInfo.getSSID();

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

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

        }

方法二:

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

Android开发:获取手机当前连接的WiFi名称_第4张图片

以上两种方法任选一种即可,去掉双引号之后,返回的才是真正的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名称

            }

        });

    }

具体效果如下所示:

Android开发:获取手机当前连接的WiFi名称_第5张图片

 

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

三掌柜的微信公众号:

Android开发:获取手机当前连接的WiFi名称_第6张图片

三掌柜的新浪微博:

Android开发:获取手机当前连接的WiFi名称_第7张图片

 

你可能感兴趣的:(Android开发)