Android Studio API 33 获取当前连接的WIFI名称
- 常规流程
- 失败流程
常规流程
以下内容在 API 33 成功实现,低版本API还请自行尝试(仅推荐 API 29 - 33 用户食用)
- 先(至少)添加以下权限到你的 AndroidManifest.xml 文件
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
- 在需要使用的Activity类中,添加以下代码:
import android.content.Context;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;public class MainActivity extends AppCompatActivity {// ...private void getCurrentSsid() {WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);WifiInfo wifiInfo = wifiManager.getConnectionInfo();if (wifiInfo != null) {String ssid = wifiInfo.getSSID();// Remove quotes if presentif (ssid.startsWith("\"") && ssid.endsWith("\"")) {ssid = ssid.substring(1, ssid.length() - 1);}Log.d("Current SSID: ", ssid); // 可以用sout替换hh}}// ...
}
- 从 Android 10 (API 29)开始,需要确保 已经获取了定位权限。
requestPermissions()函数会请求所需的定位权限,如果已经获取到这些权限,那么它会直接调用getCurrentSsid()函数获取当前连接的WiFi网络的名称,否则,它会请求这些权限。当用户做出是否允许这些权限请求的决定后,系统会调用onRequestPermissionsResult()函数,这个函数会检查请求的结果,如果用户已经同意了请求,那么它会再次调用函数获取当前连接的WiFi网络的名称。(当然,你可以修改这个函数为 仅仅获取定位权限)
import android.Manifest;
import android.content.pm.PackageManager;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;public class MainActivity extends AppCompatActivity {// ...private static final int PERMISSIONS_REQUEST_CODE = 123;private void requestPermissions() {String[] permissions = {Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION};if (ContextCompat.checkSelfPermission(this.getApplicationContext(),Manifest.permission.ACCESS_FINE_LOCATION)== PackageManager.PERMISSION_GRANTED) {getCurrentSsid();} else {ActivityCompat.requestPermissions(this, permissions, PERMISSIONS_REQUEST_CODE);}}@Overridepublic void onRequestPermissionsResult(int requestCode,String permissions[], int[] grantResults) {switch (requestCode) {case PERMISSIONS_REQUEST_CODE: {if (grantResults.length > 0&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {getCurrentSsid();}return;}}}
}
- 在适当的地方(例如在
onCreate()函数中)调用requestPermissions()函数,之后就可以调用getCurrentSsid()获取 SSID 了(亲测有用)
失败流程
如果失败了,请考虑以下情况:
- 你有没有打开 手机WIFI 啊啊啊!!!
- 需要 ACCESS_WIFI_STATE 等权限
- 对于 Android 10 及以上版本,需要 ACCESS_FINE_LOCATION 权限
- 对于后台应用,在 Android 10 及以上版本中,无法获取 SSID
- 用户的位置设置应打开
检查过了还是不行就另寻其他方法吧 QwQ
相关文章:
Android Studio API 33 获取当前连接的WIFI名称
常规流程失败流程 常规流程 以下内容在 API 33 成功实现,低版本API还请自行尝试(仅推荐 API 29 - 33 用户食用) 先(至少)添加以下权限到你的 AndroidManifest.xml 文件 <uses-permission android:name"andr…...
ICCV 2023 | 半监督三维目标检测新SOTA:密集匹配和量化补偿
论文链接:https://arxiv.org/abs/2304.13031 开源代码仓库地址:https://github.com/AIR-DISCOVER/DQS3D 方法效果对比图:有效在半监督情况下处理临近小物体 01. 简介 本文旨在解决三维室内场景中高昂的标注成本问题,特别关注半监…...
python+django+mysql项目实践三(用户管理)
python项目实践 环境说明: Pycharm 开发环境 Django 前端 MySQL 数据库 Navicat 数据库管理 用户列表展示 urls view models html <!DOCTYPE html> <html...
Java多线程 | 操作线程的方法详解
文章目录 一、线程的启动1.1 start()方法 二、线程的休眠与中断2.1 Thread.sleep()方法2.2 interrupt()方法 三、线程的等待与唤醒3.1 wait()方法3.2 Object类的notify()和notifyAll()方法3.3 await()和signal()方法3.4 使用join()方法等待线程执行完成 四、线程的状态控制与管…...
【ConcurrentHashMap1.7源码】十分钟带你深入ConcurrentHashMap并发解析
ConcurrentHashMap1.7源码 四个核心要点 初始化PUT扩容GET Unsafe 初始化 五个构造方法 /*** Creates a new, empty map with the default initial table size (16).*/public ConcurrentHashMap() {}/*** Creates a new, empty map with an initial table size* accommodati…...
程序框架-事件中心模块-观察者模式
一、观察者模式 1.1 观察者模式定义 意图: 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变是,所有依赖于它的对象都能得到通知并自动更新。 适用性: 当一个对象状态的改变需要改变其他对象, 或实际对…...
通过AOP的ProceedingJoinPoint获取方法信息
文章目录 ProceedingJoinPoint用法 ProceedingJoinPoint用法 获得切点对应的方法(Method) 本处Method指的是java.lang.reflect.Method 若切入点表达式是方法,则获得的是切入点方法的信息。若切入点表达式是注解,则获得的是使用了…...
【JavaSE】初步认识类和对象
【本节目标】 1. 掌握类的定义方式以及对象的实例化 2. 掌握类中的成员变量和成员方法的使用 3. 掌握对象的整个初始化过程 目录 1. 面向对象的初步认知 2. 类定义和使用 3. 类的实例化 4. this引用 1. 面向对象的初步认知 1.1 什么是面向对象 Java是一门纯面向对象的语…...
python中的matplotlib画饼图(数据分析与可视化)
直接开始 1、先安装pandas和matplotlib pip install pandas pip install matplotlib2、然后在py文件中导入 import pandas as pd import matplotlib.pyplot as plt3、然后直接写代码 import pandas as pd import matplotlib.pyplot as pltpd.set_option("max_columns&…...
用Rust实现23种设计模式之 职责链模式
关注我,学习Rust不迷路!! 优点 解耦:职责链模式将请求发送者和接收者解耦,使得多个对象都有机会处理请求,而不是将请求的发送者和接收者紧密耦合在一起。灵活性:可以动态地改变或扩展处理请求…...
进销存管理中的技术创新和数字化转型
在进销存管理中,技术创新和数字化转型可以通过以下具体的应用案例来实现: 自动化仓储系统:利用自动化技术和机器人系统来管理仓库操作,包括货物的装卸、分拣和存储。这可以提高仓库的运作效率,减少人力成本࿰…...
与“云”共舞,联想凌拓的新科技与新突破
伴随着数字经济的高速发展,IT信息技术在数字中国建设中起到的驱动和支撑作用也愈发凸显。特别是2023年人工智能和ChatGPT在全球的持续火爆,更是为整个IT产业注入了澎湃动力。那么面对日新月异的IT信息技术,再结合疫情之后截然不同的经济环境和…...
【超细节】Vue3组件事件怎么声明,defineEmits与emit
目录 前言 一、基本语法 1. 子组件触发 2. 父组件监听 二、 事件参数 1. 传值 2. 接收值 三、 事件校验 四、注意事项 前言 组件事件是 Vue 组件之间进行通信的一种方式。它允许一个组件触发一个自定义事件,并且其他组件可以监听并响应这个事件。 一、基本…...
java Selenium 实现简单的网页操作
官方文档:入门指南 | Selenium Selenium是一个用于Web应用测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。 所以使用这个前端测试话工具,可以自动化做很多事情,比如自动化抓取网页内容,俗称网…...
(数据库系统概论|王珊)第一章绪论-第一节:数据库系统概论
目录 一:四大基本概念 (1)数据(Data) (2)数据库(DataBase,DB) (3)数据库管理系统(DataBase Management System,DBMS) (4)数据库系统(Database System,DBS…...
深入理解TCP三次握手:连接可靠性与安全风险
目录 导言TCP简介和工作原理的回顾TCP三次握手的目的和步骤TCP三次握手过程中可能出现的问题和安全风险为什么TCP三次握手是必要的?是否可以增加或减少三次握手的次数?TCP四次挥手与三次握手的异同点 导言 在网络通信中,TCP(Tra…...
基于人工智能的智能矿山解决方案
什么是智能矿山? 智能矿山是一种运用先进技术和智能化系统来管理和监控矿山运营的概念。它利用传感器、无线通信、数据分析和人工智能等技术,实现对矿山内部各个环节的实时监测、自动化控制和智能决策,从而提高矿山的效率、安全性和可持续性。…...
vue-cli3项目优化
首先添加两个量化的插件,方便对项目目前的情况进行分析: 1.添加speed-measure-webpack-plugin插件 —量化的指标可以看出前后对比 使用步骤: 安装speed-measure-webpack-plugin依赖 npm install speed-measure-webpack-plugin -D配置vue.c…...
Windows环境下VSCode安装PlatformIO Cero报错ERROR: HTTP error 403 while getting
安装PlatformIO插件成功,初始化失败 错误信息判断问题尝试访问https://pypi.tuna.tsinghua.edu.cn/simple/platformio/成功点击文件后报错如下: 解决问题- 换源 ( Windows下有两个地方需要更改)cmd命令行Pip文件 总结:…...
git bash 安装sdkadmin
1.下载相关安装包,复制到git 安装目录 D:\software\Git\mingw64\bin 2. 运行 curl -s "https://get.sdkman.io" | bash...
Linux 的 mkfifo 命令
mkfifo 是 Linux 系统中用于创建命名管道(FIFO)的命令行工具。命名管道是一种特殊的文件类型,允许不相关的进程通过文件系统进行通信。 基本语法 mkfifo [选项] 文件名常用选项 -m, --modeMODE:设置管道文件的权限模式(类似 chmod…...
如何用XXMI启动器一键管理多游戏模组:告别文件混乱,享受整洁游戏体验
如何用XXMI启动器一键管理多游戏模组:告别文件混乱,享受整洁游戏体验 【免费下载链接】XXMI-Launcher Modding platform for GI, HSR, WW and ZZZ 项目地址: https://gitcode.com/gh_mirrors/xx/XXMI-Launcher 还在为原神、星穹铁道、鸣潮等多款游…...
2025河北石家庄/邯郸唐山机械互动屏设计如何重塑展厅叙事
你是否曾站在展厅里,看着墙上静态的文字与图片,心里却渴望“走进”故事里?或是带着孩子观展,却难以让他对玻璃后的文物投去好奇的一瞥?传统展厅正在经历一场静默的革命——当机械的精密与屏幕的智能相遇,展…...
【日常运维】Java服务在Windows平台上作为常驻服务的启动方式【winsw.exe】
文章目录[toc]一、下载winsw二、放置jar包三、配置启动信息四、启动服务五、在服务中查看服务是否启动成功六、调用服务是否成功七、指定编码格式八、启动服务一般一、下载winsw 二进制可执行文件下载地址: http://repo.jenkins-ci.org/releases/com/sun/winsw/win…...
BeRoot项目架构揭秘:模块化设计的权限提升检测系统
BeRoot项目架构揭秘:模块化设计的权限提升检测系统 【免费下载链接】BeRoot Privilege Escalation Project - Windows / Linux / Mac 项目地址: https://gitcode.com/gh_mirrors/be/BeRoot BeRoot是一款强大的跨平台权限提升检测系统,支持Windows…...
Unity游戏里加个AI助手?手把手教你用豆包Doubao-1.5-pro-32k实现流式对话(附完整C#代码)
在Unity中打造智能AI助手:用豆包Doubao-1.5-pro-32k实现沉浸式对话体验 想象一下,你的游戏角色不再只是机械地重复预设台词,而是能够根据玩家的提问做出智能回应——这种体验在《赛博朋克2077》等3A大作中已经实现,而现在…...
一文了解大模型:Token、上下文、计费与选型
一、前言想象你走进一家餐厅,菜单上写着"按食材重量计费"。你点了一碗面,但结账时发现:面条、汤底、葱花全都算重量,而且不同食材单价不同。大模型的 Token 计费,本质上就是这么回事。大模型(Lar…...
AirPodsDesktop:Windows和Linux用户的完整AirPods体验终极指南
AirPodsDesktop:Windows和Linux用户的完整AirPods体验终极指南 【免费下载链接】AirPodsDesktop ☄️ AirPods desktop user experience enhancement program, for Windows and Linux (WIP) 项目地址: https://gitcode.com/gh_mirrors/ai/AirPodsDesktop 你是…...
Qt播放MP4视频时,如何优雅地处理播放列表和播放模式?一个实战案例分享
Qt播放MP4视频时如何优雅处理播放列表与播放模式 在开发多媒体应用时,播放列表管理和播放模式切换往往是比基础播放功能更具挑战性的部分。本文将深入探讨如何在Qt框架下构建一个健壮的MP4播放器,重点解决播放列表的智能管理和多种播放模式的优雅实现。…...
EasyAnimateV5图生视频教程:如何用LoRA Alpha=0.55增强特定风格表现力
EasyAnimateV5图生视频教程:如何用LoRA Alpha0.55增强特定风格表现力 1. 了解EasyAnimateV5图生视频模型 EasyAnimateV5-7b-zh-InP是一个专门用于图生视频任务的AI模型,它能够将输入的静态图片转换为动态视频。这个模型有70亿参数,占用22GB…...
