Android 13 高通设备热点低功耗模式

需求:

Android设备开启热点,使Iphone设备连接,自动开启低数据模式

低数据模式:

低数据模式是一种在移动网络或Wi-Fi环境下,通过限制应用程序的数据使用、降低数据传输速率或禁用某些后台操作来减少数据流量消耗的优化模式。

这种模式主要用于节省数据流量费用,特别是在移动网络流量费用昂贵的情况下。低数据模式可以通过限制应用程序后台数据传输、减小图片质量、禁用自动播放视频等方式来降低数据流量消耗。在iOS设备上,如iPhone,低数据模式可以通过设置中的蜂窝网络或Wi-Fi选项开启。开启后,系统会自动减少后台未使用的应用刷新数据,节约流量并减少设备功耗,从而增强续航能力。

此外,低数据模式不仅适用于移动网络,也适用于Wi-Fi网络。在Wi-Fi网络下,开启低数据模式还可以提升续航能力。

综上,低数据模式起源为IOS 13以后的功能,最常见的表现就是在切换wifi为移动数据时候,后台下载会暂停

基于上述需求,我们知道设备在使用移动数据时候,默认会暂停后台的下载,那如果设备能区分出连接的wifi是热点还是路由器散发的wifi即可达到文章开头的需求。

测试发现小米设备和IOS,在wifi扫描列表,热点和路由器散发的wifi是有明显区分的,详见如下,曲别针图标的是热点,连接该wifi,状态栏图标也是显示未曲别针,但是大部分Android ,在这一块无区分

如图,小米设备也可以区分出热点和路由器wifi,并且散发的热点也可以被Iphone设备识别为移动热点,但是我的设备散发的热点,IPhone设备当做一个普通的wifi,仔细看下小米设备在开启热点的时候,有一个设备标识,可设置为移动热点还是默认,测试发现,设置默认的话,该热点IPhone设备也识别不出来。

我们分别设置这两个开关,摘取下小米的日志,观察如下不同

我们分别设置这两个开关,摘取下小米的日志,观察如下不同

vendor_elements值不同,我们再次push出来小米的Settings,反编译大概看下,发现设置为移动热点的时候,确实是DD0A0017F206010103010000

由此可以确定,小米和Iphone,会识别DD0A0017F206010103010000这个标识,为这个则认定为热点,看下小米的wifi连接页面,判断是否有{0, 23, -14, 6, 1, 1, 3, 1}这一串的标识(DD是开头,0A表示长度为10,后面的0017F206010103010000就是数据,转为10进制就是:{0, 23, -14, 6, 1, 1, 3, 1,0,0})

在热点相关的类中搜索VendorElements相关,发现设置接口和解析接口

设置:
//QSSI.13\packages\modules\Wifi\framework\java\android\net\wifi\SoftApConfiguration.java
@NonNull
@RequiresApi(Build.VERSION_CODES.TIRAMISU)
public Builder setVendorElements(
        @NonNull List<ScanResult.InformationElement> vendorElements) {
    if (!SdkLevel.isAtLeastT()) {
        throw new UnsupportedOperationException();
    }
    for (ScanResult.InformationElement e : vendorElements) {
        if (e.id != ScanResult.InformationElement.EID_VSA) {
            throw new IllegalArgumentException("received InformationElement which is not "
                    + "related to VendorElements. VendorElement block should start with "
                    + HexEncoding.encodeToString(
                            new byte[]{ (byte) ScanResult.InformationElement.EID_VSA }));
        }
    }
    final HashSet<ScanResult.InformationElement> set = new HashSet<>(vendorElements);
    if (set.size() < vendorElements.size()) {
        throw new IllegalArgumentException("vendor elements array contain duplicates. "
                + "Please avoid passing duplicated and keep structure clean.");
    }
    mVendorElements = new ArrayList<>(vendorElements);
    return this;
}

解析热点配置文件:data/misc/apexdata/com.android.wifi/WifiConfigStoreSoftAp.xml
public static SoftApConfiguration parseFromXml(XmlPullParser in, int outerTagDepth,
        SettingsMigrationDataHolder settingsMigrationDataHolder)
        throws XmlPullParserException, IOException  {
            ...
case XML_TAG_VENDOR_ELEMENTS:
    if (SdkLevel.isAtLeastT()) {
        softApConfigBuilder.setVendorElements(
                SoftApConfigurationXmlUtil.p

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

spring boot 项目配置支持https

前言 本地的项目接口 需要支持https访问 准备 java环境 由于我们使用的是java自带的 keytool工具java 生成根证书 环境是必须的 实战 生成 https证书# alias 别名 keystore 存储文件名称 storepass 存储密码 validity 有效期&#xff08;天数&#xff09; keytool -genk…

4---git命令详解第一部分

一、提交文件方面命令&#xff1a; 1.1第一步&#xff1a;将需要提交的文件放进暂存区&#xff1a; 添加单个文件到暂存区stage&#xff1a; git add 文件名 添加多个文件到暂存区&#xff1a; git add 文件名1 文件名2 ... 将目录下所有文件添加到暂存区&#xff1a; git…

Pushmall共享分销电商SaaS版2024年 5月模块开发优化完成

Pushmall共享分销电商 2024年 5月模块开发优化完成 1、**实现SaaS框架业务&#xff1a;**多租户、多商家、多门店&#xff0c;及商家入驻、商品管理。 2、租户小程序管理&#xff1a;对租户的小程序业务管理。 3、店铺小程序管理&#xff1a;对租户多店铺小程序绑定。 4、会员分…

记录一次开源 MaxKey 安装部署

官方文档&#xff1a;https://www.maxkey.top/doc/docs/intro/ 开源代码&#xff1a;https://toscode.mulanos.cn/dromara/MaxKey 发行版&#xff1a;https://toscode.mulanos.cn/dromara/MaxKey/releases 一、准备工作 yum install -y yum-utils yum-config-manager --add-r…

专业渗透测试 Phpsploit-Framework(PSF)框架软件小白入门教程(八)

本系列课程&#xff0c;将重点讲解Phpsploit-Framework框架软件的基础使用&#xff01; 本文章仅提供学习&#xff0c;切勿将其用于不法手段&#xff01; 继续接上一篇文章内容&#xff0c;讲述如何进行Phpsploit-Framework软件的基础使用和二次开发。 现在&#xff0c;我们…

【Linux】使用 s3fs 挂载 MinIO 桶

s3fs&#xff08;S3 File System&#xff09;是一个基于FUSE&#xff08;Filesystem in Userspace&#xff09;的用户空间文件系统&#xff0c;可以将Amazon S3存储桶挂载到本地文件系统。通过s3fs&#xff0c;我们可以像操作本地文件一样&#xff0c;对S3存储桶中的数据进行读…

走进全球LED显示龙头艾比森,深挖逆势增长43%的数智化逻辑

在大环境不景气的情况下&#xff0c;有一家智能制造企业在2023年营收40亿&#xff0c;同比增长高达43%&#xff0c;海外营收增长约 46%&#xff0c;并且连续12年单品牌出口额第一。 这就是全球LED显示龙头艾比森。 5月9日&#xff0c;纷享销客带领近70位企业高管走进纷享销客…

pinia持久化未生效

pinia官方文档 https://prazdevs.github.io/pinia-plugin-persistedstate/zh/guide/ pinia持久化未生效的原因很有可能就是在main.js中重复创建了pinia&#xff0c;导致持久化未生效

成都蓝蛙科技引领AIGC创新,亮相中国AIGC开发者大会

2024年5月25日&#xff0c;第三届AIGC中国开发者大会在北京举行&#xff0c;蓝蛙科技公司CEO兼创始人李辰受邀出席并发表主题演讲。作为开源框架GeneralAgent的作者&#xff0c;发表了题为“Agent框架的挑战和解决方案”的精彩演讲。李辰先生深入探讨了在构建和部署基于大型语言…

卷径计算(PID输出补偿法 SCL源代码)

卷径计算有很多方法,这里我们提供另一个思路,这里我们采用的是通过速度控制间接控制张力通过线速度和系统卷径我们可以计算出我们的速度前馈量(主速度)。具体收放卷前馈量计算可以参考下面文章链接: 收放卷前馈量计算FC(梯形图+SCL代码)-CSDN博客文章浏览阅读584次。这篇博…

2024最新TikTok抖音国际版,tiktok正版免拔卡安装来了!

保姆级教程&#xff01;2024最新TikTok抖音国际版&#xff0c;无限制&#xff01;tiktok正版免拔卡安装方法来了&#xff01; TikTok这款APP为何让全球都为之疯狂&#xff1f;因为它更懂人性&#xff0c;懂的人都懂&#xff01; 我是你的老朋友阿星&#xff0c;今天阿星要给大…

Maven高级详解

文章目录 一、分模块开发与设计分模块开发的意义模块拆分原则 分模块开发(模块拆分)创建Maven模块书写模块代码通过maven指令安装模块到本地仓库(install指令) 二、依赖管理依赖传递可选依赖排除依赖可选依赖和排除依赖的区别 三、聚合与继承聚合工程聚合工程开发创建Maven模块…

香橙派OrangePi AIpro,助力国产AIoT迈向新的台阶!

前言&#xff1a;很高兴受邀CSDN与OrangePi官方组织的测评活动&#xff0c;本次测评是一块基于AI边缘计算的香橙派开发板OrangePi AIpro。这是 香橙派 联合 华为昇腾 合作精心打造的新一代边缘AI计算产品&#xff0c;于2023年12月初发布&#xff0c;提供 8/20TOPS澎湃算力[1]&a…

关于Java程序入口args参数

关于Java程序入口args参数 我们都知道一个java工程会有一个主程序入口&#xff0c;即我们常见到的如下代码 public static void main(String[] args) {// 中间程序 }但是很多人可能都不知道主程序入口中的String[] args后面的args会有怎么样一个使用场景呢&#xff1f; 其实在…

【chagpt】广泛使用API之前:考虑成本和数据隐私

文章目录 一. 定价和标记限制二. 安全和隐私 在广泛使用API之前&#xff0c;应该考虑两个重要因素&#xff1a;成本和数据隐私。 一. 定价和标记限制 OpenAI在Pricing页面上列出了模型的定价。请注意&#xff0c;OpenAI不一定及时更新该页面上的定价信息&#xff0c;因此实际…

Rust 赋能前端 -- 写一个 File 转 Img 的功能

所有耀眼的成绩,都需要苦熬,熬得过,出众;熬不过,出局 大家好,我是柒八九。一个专注于前端开发技术/Rust及AI应用知识分享的Coder 此篇文章所涉及到的技术有 Rustwasm-bindgen/js-sys/web-sysWeb WorkerWebAssemblyWebpack/Vite配置WebAssemblyOffscreenCanvas脚手架生成项…

[AI Google] I/O 2024大会上我们宣布的100件事情

I/O 2024 发生了很多事情&#xff01;无论你对最新的 Gemini 应用更新感兴趣&#xff0c;对开发者即将推出的内容感到特别兴奋&#xff0c;还是迫不及待想尝试最新的生成式 AI 工具&#xff0c;这里几乎为每个人都提供了一些内容。不信&#xff1f;以下是我们在过去两天宣布的 …

如何使用 Monte Carlo 模拟作为项目管理工具

Monte Carlo 模拟是一种预测不确定事件可能结果的数学技术。我们之前曾撰写过有关其为研发专业人员带来的益处的文章&#xff0c;并主持过有关 Monte Carlo 模拟功能的网络讲座&#xff0c;以帮助产品满足预期规格、预测过程能力并确定最佳过程设置。然而&#xff0c;Monte …

隐藏服务器源IP怎么操作,看这一篇学会!

在当今的网络环境中&#xff0c;服务器作为信息和服务的中枢&#xff0c;常驻于公网之上&#xff0c;面临着各式各样的安全威胁&#xff0c;其中&#xff0c;分布式拒绝服务&#xff08;DDoS&#xff09;攻击尤为猖獗&#xff0c;它通过协调大量计算机同时向目标服务器发送请求…

打印机手动双面打印技巧

一、WORD和PDF &#xff08;1&#xff09;首先选择要打印的页面范围&#xff0c;然后选择仅奇数页打印 &#xff08;2&#xff09;将打印完的纸张翻过来&#xff0c;白纸朝上&#xff0c;纸张的头部先放入打印机 &#xff08;3&#xff09;选择要打印的页面范围&#xff0c;然…