Android——热点开关演讲稿

SoftAP打开与关闭

目录

1.三个名词的解释以及关系
Tethering——网络共享,WiFi热点、蓝牙、USB
SoftAp——热点(无线接入点),临时接入点
Hostapd——Hostapd是用于Linux系统的软件,,支持多种无线认证和加密协议,将任何计算机变成一个无线接入点和认证服务器
Android通过Hostapd,搭建一个SoftAp,通过Tethering实现不同的网络共享。
2.热点打开关闭的流程
基本就是不同参数的StartTethering、StartSoftAp以及StartHostapd!

00 Outline

六个目录,kernel那边未涉及到。
简单走一下流程!

01 Tethering 1

startTethering(TETHERING_WIFI) 不同参数
Preference 的监听器

01 Tethering 2

1.四个参数
Type——热点类型
Receiver——热点成功失败接收通知,回调函数
showProvisioningUi——是否网络配送界面
Handler——Handler对象,后台线程中接收结果

01 Tethering 3

binder通信基础
1.framework的一些进程
2.内核空间和用户空间
3.Binder 是基于 C/S 架构的。由一系列的组件组成,包括 Client、Server、ServiceManager、Binder 驱动。
其中 Client、Server、Service Manager 运行在用户空间,Binder 驱动运行在内核空间。
Binder通信原理图4.ServiceManager 是一个进程,Server 是另一个进程,Server 向 ServiceManager 中注册 Binder 必然涉及到进程间通信。当前实现进程间通信又要用到进程间通信

01 Tethering 4

第一个Binder通信

01 Tethering 5

1.几个名词
网络有效性检测(NetworkMonitor)
网络评分机制(NetworkFactory)
路由配置信息的获取(NetworkAgent)
网络物理端口的设置(Netd)
2.总结
通过wifi,mobile data,Tethering,VPN 等方式来获取路由配置信息。无论通过哪种方式,获取到路由配置信息后,需要交给ConnectivityService来处理,ConnectivityService通过ping网络来检查网络的有效性,进而影响到各个数据业务方式的评分值,ConnectivityService通过这些评分值来决定以哪个数据业务方式连接网络。

01 Tethering 6

网络共享

02 SoftAp 1

1.第二个Binder通信,wifi调用消息流,ASyncChannel主要是一个Binder通信的一个类,提供一种异步的,面向消息的方式进行Binder通信
2.WifiService相当于Wifi的控制器,负责各种Wifi的操作,比如开关,扫描以及连接等。

02 SoftAp 2

WifiService 三个交互

02 SoftAp 3

上面与WifiService交互的ContentProvider
WifiSettingsStore 特殊的两种Wifi状态,就是飞行模式下Wifi的状态,飞行模式下手动开启Wifi和打开飞行模式导致Wifi被关闭
WifiController这个状态机去监听飞行模式是否打开和关闭

02 SoftAp 4

WifiController 两种状态
WifiStateMachine 四种状态

02 SoftAp 5

02 SoftAp 6

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

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

相关文章

Nginx实战:LUA脚本_环境配置安装

目录 一、什么是LUA脚本 二、Nginx中的LUA脚本 1、主要特点 2、用途 三、如何在nginx中使用LUA脚本 1、原生nginx 2、OpenResty 3、nginx lua配置验证 一、什么是LUA脚本 Nginx Lua 脚本是 Nginx 与 Lua 语言集成的结果,它允许你使用 Lua 语言编写Nginx 模块…

05-控制流(分支结构)

05-控制流(分支结构) 一、二路分支 程序中某一段代码需要满足一定的条件才会被执行。 if 语句:用于表达一种条件,如果条件满足则执行某个代码块。if-else 语句:用于表达一种条件,如果条件满足则执行某个代码块,否则…

带你了解消防安全与应急救援,2024北京消防展6月盛大开启

带你了解消防安全与应急救援,2024北京国际消防展6.26盛大开启 在日益关注安全问题的今天,消防安全与应急救援已经成为社会发展的重要一环。为了提高全民消防安全意识,推动应急救援技术的发展,2024年北京国际消防展将于6月26日盛大…

区间预测 | Matlab实现QRCNN-GRU-Attention分位数回归卷积门控循环单元注意力机制时序区间预测

区间预测 | Matlab实现QRCNN-GRU-Attention分位数回归卷积门控循环单元注意力机制时序区间预测 目录 区间预测 | Matlab实现QRCNN-GRU-Attention分位数回归卷积门控循环单元注意力机制时序区间预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现QRCNN-GRU-…

0基础学习区块链技术——推演猜想

大纲 去中心预防篡改付出代价方便存储 在《0基础学习区块链技术——入门》一文中,我们结合可视化工具,直观地感受了下区块的结构,以及链式的前后关系。 本文我们将抛弃之前的知识,从0开始思考和推演,区块链技术可能是如…

暑期来临,AI智能视频分析方案筑牢防溺水安全屏障

随着夏季暑期的来临,未成年人溺水事故频发。传统的防溺水方式往往依赖于人工巡逻和警示标识的设置,但这种方式存在人力不足、反应速度慢等局限性。近年来,随着视频监控智能分析技术的不断发展,其在夏季防溺水中的应用也日益凸显出…

Vue3——实现word,pdf上传之后,预览功能(实测有效)

vue-office/pdf - npm支持多种文件(**docx、excel、pdf**)预览的vue组件库,支持vue2/3。也支持非Vue框架的预览。. Latest version: 2.0.2, last published: a month ago. Start using vue-office/pdf in your project by running npm i vue-office/pdf. There are …

kafka安装流程

安装kafka前需要安装zookeeper zookeeper安装教程 1.新建一个logs文件夹 2.修改配置文件 3.修改listeners参数 4.以管理员身份启动kafka服务 .\bin\windows\kafka-server-start.bat .\config\server.properties 如果报 输入行太长。 命令语法不正确。 解决方案如下&#x…

力扣 503. 下一个更大元素 II

题目来源:https://leetcode.cn/problems/next-greater-element-ii/description/ C题解:因为是循环数组,所以对数组进行了两次遍历,相当于循环。使用了栈,一个存放元素,一个存放索引,用来更新res…

智能仪表通过Modbus转Profinet网关与PLC通讯方案

一、功能及优势:Modbus转Profinet网关(XD-MDPN100/300)的主要功能是实现Modbus协议和Profinet协议之间的转换和通信。Modbus转Profinet网关集成了Modbus和Profinet两种协议,支持Modbus RTU主站/从站,并可以与RS485接口…

STL:list

文章目录 标准库中的listlist的构造list的迭代器list的容量list的访问list的修改 list的迭代器失效list的反向迭代器list 与 vector的对比 标准库中的list list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。list的底层是双…

性能监控工具

性能是任何一款软件都需要关注的重要指标。除了软件的基本功 能,性能可以说是评价软件优劣的最重要的指标之一。我们该如何有 效地监控和诊断性能问题呢?本章基于实践,着重介绍一些针对系统 和Java虚拟机的监控和诊断工具,以帮助读者在实际开…

Promise总结

参考大佬 傻小胖的文章ES6 Promise用法小结-CSDN博客 一. 初识Promise Promise对象保存了异步调用的结果,如果正在调用,该对象的状态为 pending ;如果执行成功, 该对象的状态为 fulfilled;如果执行失败, 该对象的状态为 rejected 成功&…

企业在现代市场中的战略:通过数据可视化提升财务决策

新时代,财务规划团队不仅仅是企业内部的一个部门,更是帮助企业做出明智决策和设定战略目标的中坚力量。在当今瞬息万变的商业环境中,财务专业人士需要具备应对挑战并引导企业走向成功的角色职能。企业领导者时常面临着数据压力,需…

Ubuntu系统的k8s常见的错误和解决的问题

K8s配置的时候出现的常见问题 Q1: master节点kubectl get nodes 出现的错误 或者 解决方法&#xff1a; cat <<EOF >> /root/.bashrc export KUBECONFIG/etc/kubernetes/admin.conf EOFsource /root/.bashrc重新执行 kubectl get nodes 记得需要查看一下自己的…

树形表/树形数据接口的开发

数据表格式 需要返回的json格式 点击查看json数据 [{"childrenTreeNodes" : [{"childrenTreeNodes" : null,"id" : "1-1-1","isLeaf" : null,"isShow" : null,"label" : "HTML/CSS","na…

AWS EC2服务器开启root密码,SSH登录

1) EC2 Instance Connect连接&#xff0c;更改root密码 sudo passwd root 2&#xff09;接着切换到切换到 root 身份&#xff0c;编辑 SSH 配置文件 $ sudo -i$ vi /etc/ssh/sshd_configPasswordAuthentication no&#xff0c;把 no 改成 yes #PermitRootLogin prohibit-passw…

Java实现经纬度坐标转换

一、坐标系统简介 坐标系统&#xff0c;是描述物质存在的空间位置&#xff08;坐标&#xff09;的参照系&#xff0c;通过定义特定基准及其参数形式来实现。 坐标是描述位置的一组数值&#xff0c;按坐标的维度一般分为一维坐标&#xff08;公路里程碑&#xff09;和二维坐标…

微软Edge浏览器深度解析:功能、同步、隐私与安全

微软Edge浏览器是微软公司开发的一款网页浏览器,它基于Chromium内核,提供了快速、安全和兼容性良好的网页浏览体验。以下是关于微软Edge浏览器的详细信息和使用指南: 微软Edge浏览器的主要特点: 1. 基于Chromium内核: 渲染引擎:Chromium内核是基于开源项目Blink的,它…

任务3.7 开发名片管理系统

本实战项目以Java语言为基础&#xff0c;精心打造了一个功能全面的名片管理系统。系统采用面向对象的设计原则&#xff0c;通过Card类来封装每张名片的详细信息&#xff0c;如姓名、单位、职位和联系电话等&#xff0c;并提供了标准的访问器和修改器方法以确保数据的安全访问。…