当前位置: 首页 > news >正文

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");}

相关文章:

  • profile-3d-contrib,github三维立体图的使用
  • JDK17 你的下一个白月光
  • Docker部署Nginx下载站点服务
  • UML与设计模式
  • sourcemap
  • vue2 + echats macarons 选中样式的树状图
  • C++移动语义
  • 基于单片机的多功能智能小车设计
  • 5.3.1_2 二叉树的层次遍历
  • 大学牲期末救命医疗包速达~【概率论/马原/编译原理等工科课程速成】
  • MySQL数据操作与查询- 连接查询
  • 算法体系-21 第二十一 暴力递归到动态规划(三)
  • 专业学习|博弈论-博弈论概述
  • .NET MAUI Sqlite数据库操作(二)异步初始化方法
  • Mysql的增、删、查、改
  • 【css3】浏览器内核及其兼容性
  • angular2开源库收集
  • CentOS7 安装JDK
  • Facebook AccountKit 接入的坑点
  • jdbc就是这么简单
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • Swoft 源码剖析 - 代码自动更新机制
  • 阿里云购买磁盘后挂载
  • 程序员该如何有效的找工作?
  • 开源SQL-on-Hadoop系统一览
  • 前端相关框架总和
  • 我是如何设计 Upload 上传组件的
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • 在Unity中实现一个简单的消息管理器
  • - 转 Ext2.0 form使用实例
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • 如何在招聘中考核.NET架构师
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • (152)时序收敛--->(02)时序收敛二
  • (27)4.8 习题课
  • (52)只出现一次的数字III
  • (二十四)Flask之flask-session组件
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (附源码)计算机毕业设计大学生兼职系统
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (十一)手动添加用户和文件的特殊权限
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (转)EOS中账户、钱包和密钥的关系
  • (转)nsfocus-绿盟科技笔试题目
  • (转载)(官方)UE4--图像编程----着色器开发
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .net core 6 redis操作类
  • .Net Core和.Net Standard直观理解
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .Net面试题4
  • ::before和::after 常见的用法
  • @ConfigurationProperties注解对数据的自动封装