uni-app获取手机当前连接的WIFI名称
一、需要增加安卓访问用户位置与信息的权限
1.manifest.json文件中增加对应权限
/* android打包配置 */"android" : {"permissions" : ["<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>","<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>","<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>"]},
二、尝试动态获取用户位置信息权限
// 请求位置权限requestLocationPermission() {if (plus.os.name.toLowerCase() === "android") {plus.android.requestPermissions(["android.permission.ACCESS_FINE_LOCATION","android.permission.ACCESS_COARSE_LOCATION",],function(result) {console.log("位置权限请求结果:", result);},function(error) {console.error("位置权限请求错误:", error);});}},
三、使用uniapp的getNetworkType先获取网络状态,判断是否连接了wifi
uni.getNetworkType({success: (res) => {if (res.networkType === "wifi") {// 已连接WiFi,尝试获取SSIDthis.getWifiSSID();} else {// 未连接WiFiconsole.log('未连接WiFi网络');}},fail: (err) => {console.error('获取网络类型失败:', err);},});
四、获取WiFi SSID
getWifiSSID() {// console.log('尝试获取WiFi SSID');if (window.plus) {try {// 主窗体var MainActivity = plus.android.runtimeMainActivity();// 上下文var Context = plus.android.importClass("android.content.Context");// 导入WIFI管理和WIFI信息的classplus.android.importClass("android.net.wifi.WifiManager");plus.android.importClass("android.net.wifi.WifiInfo");// 获取WIFI管理实例var wifiManager = MainActivity.getSystemService(Context.WIFI_SERVICE);// 获取当前连接WIFI的信息var info = wifiManager.getConnectionInfo();// 获取当前WIFI连接的SSID (WIFI名称)var ssid = info.getSSID();console.log('原始SSID:', ssid);// SSID带双引号,需要处理一下ssid = ssid.replace(/(^\"*)|(\"*$)/g, "");console.log('处理后SSID:', ssid);// 处理<unknown ssid>的情况if (ssid && ssid !== "<unknown ssid>") {console.log('WiFi SSID:', ssid, '是否为公司WiFi:', this.isInCompanyWifi);} else {console.log("无法识别WiFi名称");}} catch (e) {console.error('获取WiFi SSID异常:', e);}}},