Android 14 蓝牙主从模式切换

切换蓝牙的A2DP(高级音频分布配置文件)和AVRCP(音频/视频远程控制配置文件)的源(source)和汇点(sink)模式。

这里,SystemProperties.get尝试获取bluetooth.profile.a2dp.sink.enabled属性的值。如果该属性不存在,它将返回默认值"false"。然后,它检查这个值是否等于"true"。
2. 如果当前是A2DP Sink模式(即isA2dpSink为true):

 

java复制代码

if(isA2dpSink){
// 切换成A2DP Source和AVRCP Target模式
    SystemProperties.set("bluetooth.profile.a2dp.sink.enabled","false");
    SystemProperties.set("bluetooth.profile.avrcp.controller.enabled","false");
    SystemProperties.set("bluetooth.profile.a2dp.source.enabled","true");
    SystemProperties.set("bluetooth.profile.avrcp.target.enabled","true");
}

代码试图切换到A2DP Source和AVRCP Target模式。
3. 如果当前不是A2DP Sink模式(即isA2dpSink为false):

 

java复制代码

else{
// 这里也写着“切换成主模式”,但实际上是切换回A2DP Sink和AVRCP Controller模式
            SystemProperties.set("bluetooth.profile.a2dp.sink.enabled","true");
            SystemProperties.set("bluetooth.profile.avrcp.controller.enabled","true");
            SystemProperties.set("bluetooth.profile.a2dp.source.enabled","false");
            SystemProperties.set("bluetooth.profile.avrcp.target.enabled","false");
}

但是,这里的注释还是写着“切换成主模式”,但实际上它是将蓝牙设置切换回A2DP Sink和AVRCP Controller模式。

修改建议:

  1. 修正注释以更准确地描述代码的功能。

  2. 考虑到代码可能在一个上下文中运行,其中A2DP Source和AVRCP Target被认为是“主模式”,而A2DP Sink和AVRCP Controller被认为是“从模式”。如果是这样,那么注释应该是这样的:

       boolean isA2dpSink = SystemProperties.get("bluetooth.profile.a2dp.sink.enabled","false").equals("true");if(isA2dpSink){//切换成主模式SystemProperties.set("bluetooth.profile.a2dp.sink.enabled","false");SystemProperties.set("bluetooth.profile.avrcp.controller.enabled","false");SystemProperties.set("bluetooth.profile.a2dp.source.enabled","true");SystemProperties.set("bluetooth.profile.avrcp.target.enabled","true");}else{//切换成主模式SystemProperties.set("bluetooth.profile.a2dp.sink.enabled","true");SystemProperties.set("bluetooth.profile.avrcp.controller.enabled","true");SystemProperties.set("bluetooth.profile.a2dp.source.enabled","false");SystemProperties.set("bluetooth.profile.avrcp.target.enabled","false");}

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

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

相关文章

在WSL2的Ubuntu中安装和使用Docker/Podman

在WSL2的Ubuntu中安装和使用Docker/Podman 0. 目的 当网络环境良好(例如在公司,能直接访问Google等)时, Docker/Podman 安装和使用不是问题。 当网络环境不佳(例如在家里),要把 WSL2 的 Ubun…

Termius安装docker

安装Termius 直接上官网 新建主机 更新一下yum 更新完成 安装docker的包 直接用命令安装 设置一下开机启动,可以查看docker的版本

Ui学习--UITableView

UI学习 UITableView基础UITableView协议UITableView高级协议与单元格总结 UITableView基础 UITableView作为iOS中的一个控件,用于以表格形式展示数据。例如通讯录好友,朋友圈信息等,都是UITableView的实际运用场景。 首先我们先要加入两个协…

Mysql的增、删、查、改

MySQL 是一个流行的关系型数据库管理系统,它支持 SQL(结构化查询语言)用于管理数据库中的数据。以下是使用 SQL 在 MySQL 中进行增(INSERT)、删(DELETE)、查(SELECT)、改…

K210使用雷龙NAND完成火灾检测

NAND 文章目录 NAND前言一、NAND是什么?二、来看一看NAND三、部署火灾检测 前言 前几天收到了雷龙NAND的芯片,一共两个芯片和一个转接板,我之前也没有使用过这款芯片,比较好奇,体验了一下,个人认为&#x…

嵌入式微处理器重点学习(三)

堆栈操作 R1=0x005 R3=0x004 SP=0x80014 STMFD sp!, {r1, r3} 指令STMFD sp!, {r1, r3}是一条ARM架构中的存储多个寄存器到内存的指令,这里用于将r1和r3寄存器的内容存储到栈上。STMFD(Store Multiple Full Descending)是一种全递减模式的多寄存器存储指令,它会先将栈指针…

外包公司泛滥,这些常识你应该提前知道?

今年大环境确实很不好 很多985,211的应届生都在网上大吐苦水,很多大龄离职大厂的技术人也好,业务人也好,都纷纷转向短视频平台做起了自媒体。而找工作的人普遍发现,某最火的招聘平台几乎都被外包公司刷屏了。大大小小的外包公司如…

车载以太网-TC8测试

文章目录 TC8测试的用例数量TC8测试基本流程TC8测试内容TC8测试的用例数量 TC8测试的用例数量可能会因版本和具体测试内容而有所不同。一般来说,TC8测试用例总数在800条左右。 以OPEN Alliance Automotive Ethernet ECU Test Specification的3.0版本为例,该版本的测试用例总…

three.js 基础01

1.场景创建 Scene() 2.常用形状集几何体「Geometry」[可设置长宽高等内容,如:new THREE.BoxGeometry(...)] 长方体 BoxGeometry圆柱体CylinderGeometry 球体SphereGeometry圆锥体ConeGeometry矩形平面 PlaneGeometry 圆面体CircleGeometry 3.常用材质「Materi…

linux 部署瑞数6实战(维普,药监局)sign第二部分

声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!wx …

C/C++李峋同款跳动的爱心代码

一、写在前面 在编程的世界里,代码不仅仅是冷冰冰的命令,它也可以成为表达情感、传递浪漫的工具。今天,就让小编带着大家用C语言打造出李峋同款跳动的爱心吧! 首先,我们需要知道C作为一种高级编程语言,拥…

软件版本库管理工具

0 Preface/Foreword 常用代码版本管理工具包括如下几种: Git,最基本管理工具,由Linux kernel开发者开发Repo,主要用于管理Android SDK,由Google开发Gerrit,代码审查软件 1 Git 最基本的代码版本库管理工…

Linux软连接和硬连接

文章目录 软链接创建软链接查看软连接删除软链接 硬链接创建硬链接 区别小结 软链接 软连接是linux中一个常用命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。换句话说,也可以理解成Windows中的快捷方式。 创建软链接 ln -s [dir1] […

宠物健康顾问系统的设计

管理员账户功能包括:系统首页,个人中心,顾问管理,用户管理,健康知识管理,管理员管理,论坛管理,公告管理 顾问账户功能包括:系统首页,个人中心,顾…

头歌资源库(7)汉诺塔(循环)

一、 问题描述 二、算法思想 初始化三个柱子A、B、C,初始时所有的盘子都在柱子A上。对于从1到N(N表示盘子的数量)的每一个数字i,执行以下循环: a. 如果i是偶数,则将柱子B视为目标柱子,柱子C视为…

如何在 Python 3 中处理纯文本文件

简介 Python 是一个处理数据的强大工具。编程中最常见的任务之一就是读取、写入或操作数据。因此,了解如何处理存储不同类型数据的不同文件格式尤为重要。 例如,考虑一个检查用户访问控制列表的 Python 程序。你的用户列表可能存储在一个文本文件中&am…

sqlalchymy expire_on_commit

在 SQLAlchemy 中,expire_on_commit 是一个会话(Session)级别的选项,它决定了在事务提交后,会话中的对象是否应该被标记为“过期”(expired)。当一个对象被标记为过期时,它的所有属性…

25.梯度消失和梯度爆炸

深度学习中的梯度消失与梯度爆炸:定义、原因、解决办法与残差网络 一、引言 在深度学习的训练过程中,梯度消失(Gradient Vanishing)和梯度爆炸(Gradient Exploding)是两个常见且棘手的问题。它们严重阻碍…

Python时间序列分析库

Sktime Welcome to sktime — sktime documentation 用于ML/AI和时间序列的统一API,用于模型构建、拟合、应用和验证支持各种学习任务,包括预测、时间序列分类、回归、聚类。复合模型构建,包括具有转换、集成、调整和精简功能的管道scikit学习式界面约定的交互式用户体验Pro…

一个比官方strings.Title更精简高效的将字符串中所有单词首字母转换为大小写的go函数

在go语言的官方包 strings中,官方提供了Title函数用于将字符串中的单词首字母转换为大写,这个函数很绕,对于要转换的字符串先是一个Map循环,然后接着又是一个Map循环,且函数调函数掉了好多层,而且最新版本中已经标记为…