Android kotlin 跳转手机热点开关页面和判断热点是否打开

Android kotlin 跳转手机热点开关页面和判断热点是否打开

  • 判断热点是否打开
  • 跳转手机热点开关页面
    • 顺带介绍一些其他常用的设置页面跳转
  • 其他热点的一些相关知识
    • Local-only hotspot
  • 参考

在这里插入图片描述

判断热点是否打开

网上方法比较多,我这边使用了通过WifiManager 拿反射的getWifiApState方法获取判断,亲测可用,最近迷上了扩展方法【dog】

fun Activity.isWifiApOpen(): Boolean {try {val manager = this.getSystemService(Context.WIFI_SERVICE) as WifiManager//通过放射获取 getWifiApState()方法val method = manager.javaClass.getDeclaredMethod("getWifiApState")//调用getWifiApState() ,获取返回值val state = method.invoke(manager) as Int//通过放射获取 WIFI_AP的开启状态属性val field: Field = manager.javaClass.getDeclaredField("WIFI_AP_STATE_ENABLED")//获取属性值val value = field.get(manager) as Int//判断是否开启return state == value} catch (e: NoSuchMethodException) {e.printStackTrace()} catch (e: IllegalAccessException) {e.printStackTrace()} catch (e: InvocationTargetException) {e.printStackTrace()} catch (e: NoSuchFieldException) {e.printStackTrace()}return false
}

跳转手机热点开关页面

跳转手机热点的页面肯定是用intent,重点是action不知道是什么,网上最常见的就是Settings.ACTION_WIFI_SETTINGS 跳转wifi设置页面,费了一番力气,同样写为扩展方法,我试过是可以跳转热点设置页面的

值得注意的是,在部分机型或特殊情况下可能会没有这个activity,因为framework层可能更改名称,所以要做好准备

fun Activity.startWifiActivity(){val intent = Intent(Settings.ACTION_WIRELESS_SETTINGS)this.startActivity(intent)
}

顺带介绍一些其他常用的设置页面跳转

同样在部分机型或特殊情况下可能会没有这个activity,得自己试试

  • ACTION_SETTINGS
    顾名思义 跳转到系统设置页面

  • ACTION_APN_SETTINGS
    跳转 APN设置界面

  • ACTION_LOCATION_SOURCE_SETTINGS
    跳转位置服务界面(管理已安装的应用程序)

  • ACTION_AIRPLANE_MODE_SETTINGS
    跳转飞行模式设置页面

  • ACTION_APPLICATION_DEVELOPMENT_SETTINGS
    跳转开发者选项页面

  • ACTION_APPLICATION_SETTINGS
    跳转应用程序列表界面

  • ACTION_BLUETOOTH_SETTINGS
    跳转蓝牙设置页面

其他热点的一些相关知识

如果你的热点不需要联网,可以使用Local-only hotspot

Local-only hotspot

Local-only hotspot 通过配置local-only热点,连接到Wi-Fi热点的设备上的应用可以相互通信。用这种方法创建的网络将不能访问Internet。每个应用程序只能对热点进行一次请求,但多个应用程序可以同时请求热点。当多个应用程序成功并发注册时,它们共享底层热点。onstarted (localonlyhotspotrevation)在热点准备就绪时被调用。

如果我们的应用程序针对Android 13 (API级别33)或更高版本,则必须请求NEARBY_WIFI_DEVICES使用仅限本地的热点,如下面的代码片段所示。针对较早版本Android的应用必须请求ACCESS_FINE_LOCATION。

<manifest ...><<!-- If your app targets Android 13 (API level 33)or higher, you must declare the NEARBY_WIFI_DEVICES permission. --><uses-permission android:name="android.permission.NEARBY_WIFI_DEVICES"<!-- If your app derives location information fromWi-Fi APIs, don't include the "usesPermissionFlags"attribute. -->android:usesPermissionFlags="neverForLocation" /><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"<!-- If any feature in your app relies onprecise location information, don't include the"maxSdkVersion" attribute. -->android:maxSdkVersion="32" /><application ...>...</application>
</manifest>

对应方法

WifiManager中的

public void startLocalOnlyHotspot (WifiManager.LocalOnlyHotspotCallback callback, Handler handler)

可以同时连多个,开启失败在callback中会有回调

参考

安卓官网WifiManager

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/106505.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【算法系列篇】前缀和

文章目录 前言什么是前缀和算法1.【模板】前缀和1.1 题目要求1.2 做题思路1.3 Java代码实现 2. 【模板】二维前缀和2.1 题目要求2.2 做题思路2.3 Java代码实现 3. 寻找数组的中心下标3.1 题目要求3.2 做题思路3.3 Java代码实现 4. 除自身以外的数组的乘积4.1 题目要求4.2 做题思…

常见前端面试之VUE面试题汇总八

22. Vue 子组件和父组件执行顺序 加载渲染过程&#xff1a; 1.父组件 beforeCreate 2.父组件 created 3.父组件 beforeMount 4.子组件 beforeCreate 5.子组件 created 6.子组件 beforeMount 7.子组件 mounted 8.父组件 mounted 更新过程&#xff1a; 1. 父组件 befor…

自然对数底e的一些事

自然对数底e的一些事 走的人多了就成了路 中国清代数学家李善兰&#xff08;1811—1882&#xff09; 凡此变数中函彼变数者&#xff0c;则此为彼之函数 自然对数底也是使用习惯 &#x1f349; 李善兰把function翻译为函数&#xff0c;函就是包含&#xff0c;含有变量&#xff…

【JVM 内存结构丨栈】

栈 -- 虚拟机栈 简介定义压栈出栈局部变量表操作数栈方法调用特点作用 本地方法栈&#xff08;C栈&#xff09;定义栈帧变化作用对比 主页传送门&#xff1a;&#x1f4c0; 传送 简介 栈是用于执行线程的内存区域&#xff0c;它包括局部变量和操作数栈。 Java 虚拟机栈会为每…

SpeedBI数据可视化工具:丰富图表,提高报表易读性

数据可视化工具一大作用就是能把复杂数据可视化、直观化&#xff0c;更容易看懂&#xff0c;也就更容易实现以数据驱动业务管理升级&#xff0c;因此一般的数据可视化工具都会提供大量图形化的数据可视化图表&#xff0c;以提高报表的易懂性&#xff0c;更好地服务企业运营决策…

[C++ 网络协议] 多进程服务器端

具有代表性的并发服务器端实现模型和方法&#xff1a; 多进程服务器&#xff1a;通过创建多个进程提供服务。✔ 多路复用服务器&#xff1a;通过捆绑并统一管理I/O对象提供服务。 多线程服务器&#xff1a;通过生成与客户端等量的线程提供服务。 1. 进程的概念及应用 1.1 什么…

windows中安装sqlite

1. 下载文件 官网下载地址&#xff1a;https://www.sqlite.org/download.html 下载sqlite-dll-win64-x64-3430000.zip和sqlite-tools-win32-x86-3430000.zip文件&#xff08;32位系统下载sqlite-dll-win32-x86-3430000.zip&#xff09;。 2. 安装过程 解压文件 解压上一步…

Mysql B+数索引结构

一、B树和B树区别 二、 B 树形成过程 三、页分裂过程 3.1 页分裂过程实例 3.1.1 原有数据1、3、5形成如下数据页 3.1.2 先新插入数据4&#xff0c;因为 页10 最多只能放3条记录所以我们不得不再分配一个新页&#xff1a; 新分配的数据页编号可能并不是连续的&#xff0c;也…

SpringBoot内嵌Tomcat连接池分析

文章目录 1 Tomcat连接池1.1 简介1.2 架构图1.2.1 JDK线程池架构图1.2.2 Tomcat线程架构 1.3 核心参数1.3.1 AcceptCount1.3.2 MaxConnections1.3.3 MinSpareThread/MaxThread1.3.4 MaxKeepAliveRequests1.3.5 ConnectionTimeout1.3.6 KeepAliveTimeout 1.4 核心内部线程1.4.1 …

代理池在过程中一直运行

Hey&#xff0c;爬虫达人们&#xff01;在爬虫的过程中&#xff0c;要保持代理池的稳定性可不容易。今天就来和大家分享一些实用经验&#xff0c;教你如何让代理池在爬虫过程中一直运行&#xff01;方法简单易行&#xff0c;让你的爬虫工作更顺畅. 在进行爬虫工作时&#xff0…

在服务器上搭建Jenkins

目录 1.服务器要求 2.官方文档 3.在服务器上下载Jenkins 3.1 下载war包 3.2 将war包上传到服务器的一个目录下 3.3 启动jenkins 3.3.1 jdk版本升级 1&#xff09;下载jdk17 2&#xff09;解压到当前文件夹 3&#xff09;配置路径 4.jenkins配置 4.1 填写初始密码&a…

最新docker多系统安装技术

在Ubuntu操作系统中安装Docker 在Ubuntu操作系统中安装Docker的步骤如下。 1&#xff0e;卸载旧版本Docker 卸载旧版本Docker的命令如下&#xff1a; $ sudo apt-get remove docker docker-engine docker.io 2&#xff0e;使用脚本自动安装 在测试或开发环境中&#xff0…

MIUI 欧版刷机教程(操作篇)

文章目录 0 前置条件1 下载ROM包2 确定刷机方式3 线刷教程4 卡刷教程使用系统更新使用 TWRP 问题汇总 0 前置条件 必须先解除手机的 bootloader 锁。详细教程参见官网&#xff1a;申请解锁小米手机 (miui.com)。 1 下载ROM包 在 MIUI EU 官方论坛&#xff08;需要科学上网&a…

器件介绍TMP1826NGRR、TMP1826DGKR、TMP1827NGRR、TMP1075NDRLR数字温度传感器

一、TMP1826 具有 2Kb EEPROM 的 1-Wire、0.2C 精度温度传感器 器件介绍 TMP1826 是一款高精度、1-Wire 兼容的数字输出温度传感器&#xff0c;具有集成的 2Kb EEPROM 和 –55C 至150C 的宽工作温度范围。TMP1826 在 10C 至45C 的温度范围内提供 0.1C&#xff08;典型值&#…

Mac安装Docker

简简单单 目录 前言 一、安装步骤 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、安装步骤 第一种方式&#xff0c;直接去官网去下载 Docker官网 下载我勾出来的那个版本 针对于M1&#xff0c;M2用户 下载完之后 安装拖入Application中 打开…

thinkphp安装workman

需要加版本&#xff0c;版本太高了不行 composer require topthink/think-worker1.0.*

怎么查看小程序中的会员信息

商家通过查看会员信息&#xff0c;可以更好地了解用户&#xff0c;并为他们提供更个性化的服务和推荐。接下来&#xff0c;就将介绍如何查看会员信息。 商家在管理员后台->会员管理处&#xff0c;可以查看到会员列表。支持搜索会员的卡号、手机号和等级。还支持批量删除会员…

arm: day8

1.中断实验&#xff1a;按键控制led灯 流程&#xff1a; key.h /*************************************************************************> File Name: include/key.h> Created Time: 2023年08月21日 星期一 17时03分20秒***************************************…

Android 之 WindowManager (窗口管理服务)

本节引言&#xff1a; 本节给大家带来的Android给我们提供的系统服务中的——WindowManager(窗口管理服务)&#xff0c; 它是显示View的最底层&#xff0c;Toast&#xff0c;Activity&#xff0c;Dialog的底层都用到了这个WindowManager&#xff0c; 他是全局的&#xff01;该类…

c语言每日一练(11)

前言&#xff1a;每日一练系列&#xff0c;每一期都包含5道选择题&#xff0c;2道编程题&#xff0c;博主会尽可能详细地进行讲解&#xff0c;令初学者也能听的清晰。每日一练系列会持续更新&#xff0c;暑假时三天之内必有一更&#xff0c;到了开学之后&#xff0c;将看学业情…