前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android开发:获取手机当前连接的WiFi名称

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

原创
作者头像
三掌柜
发布2021-12-27 00:12:25
4.1K0
发布2021-12-27 00:12:25
举报
文章被收录于专栏:三掌柜的技术空间

前言

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

一、给App添加权限

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

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

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

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

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

如图所示:

二、在activity中添加代码

1、获取WiFi名称

代码语言:javascript
复制
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名称包含一个双引号,需要进行处理,具体处理步骤如下所示:

方法一:

代码语言:javascript
复制
        String wifiInfo1 = wifiInfo.getSSID();
        if (wifiInfo1.contains("\"")) {
            wifiInfo1 = wifiInfo1.substring(1, wifiInfo1.length() - 1);
        }

方法二:

代码语言:javascript
复制
String wifiInfo1 = wifiInfo.getSSID().replace("\"", "").replace("\"", "");

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

代码语言:javascript
复制
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控件赋值。具体使用场景如下所示:

代码语言:javascript
复制
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名称
            }
        });
    }

具体效果如下所示:

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、给App添加权限
    • 1、获取WIFI信息状态的权限
      • 2、获取网络状态改变的权限
      • 二、在activity中添加代码
        • 1、获取WiFi名称
        • 三、具体使用场景
        • 具体效果如下所示:
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档