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

Android 13修改蓝牙默认名称

Andorid 13 原生系统,蓝牙默认名称是设备型号 PRODUCT_MODEL

修改蓝牙默认名称,

找到对应产品的 device.mk ,添加如下

#custom bluetooth name
PRODUCT_PROPERTY_OVERRIDES += \bluetooth.device.default_name="Cus_bt_name"

追踪到 packages/modules/Bluetooth/system/btif/src/btif_dm.cc

#define NUM_TIMEOUT_RETRIES 5
#ifndef PROPERTY_DEFAULT_DEVICE_NAME
#define PROPERTY_DEFAULT_DEVICE_NAME "bluetooth.device.default_name"
#endif
#ifndef PROPERTY_PRODUCT_MODEL
#define PROPERTY_PRODUCT_MODEL "ro.product.model"
#endif
#define DEFAULT_LOCAL_NAME_MAX 31
#if (DEFAULT_LOCAL_NAME_MAX > BTM_MAX_LOC_BD_NAME_LEN)
#error "default btif local name size exceeds stack supported length"
#endifstatic const char* btif_get_default_local_name() {if (btif_default_local_name[0] == '\0') {int max_len = sizeof(btif_default_local_name) - 1;// Use the stable sysprop on Android devices, otherwise use osi_property_get
#ifdef OS_ANDROIDstd::optional<std::string> default_local_name =android::sysprop::BluetoothProperties::getDefaultDeviceName();//1if (default_local_name.has_value() && default_local_name.value() != "") {strncpy(btif_default_local_name, default_local_name.value().c_str(),max_len);}
#elsechar prop_name[PROPERTY_VALUE_MAX];osi_property_get(PROPERTY_DEFAULT_DEVICE_NAME, prop_name, "");//2strncpy(btif_default_local_name, prop_name, max_len);
#endif// If no value was placed in the btif_default_local_name then use model nameif (btif_default_local_name[0] == '\0') {char prop_model[PROPERTY_VALUE_MAX];osi_property_get(PROPERTY_PRODUCT_MODEL, prop_model, "");//3strncpy(btif_default_local_name, prop_model, max_len);}btif_default_local_name[max_len] = '\0';}return btif_default_local_name;
}

从三个地方取值,

  • 注释1 :getDefaultDeviceName 找到 frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
    private String getDefaultDeviceName() {return mContext.getResources().getString(R.string.def_device_name_simple, Build.MODEL);}

Build.MODEL 就是 ro.product.model

  • 注释2 :读取 bluetooth.device.default_name 属性值。
  • 注释3 :读取 ro.product.model 属性值,即产品目录里的 PRODUCT_MODEL

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【计算机网络】[第二章][自用]
  • vue动态规则
  • 萌新的Java入门日记18
  • C++编程:使用Nanomsg实现高效的文件和图片传输
  • 2-56 基于matlab的图像融合增强技术
  • Java 设计模式之桥接模式(Bridge Pattern)
  • 《嵌入式 - 嵌入式大杂烩》ARM Cortex-M寄存器详解
  • 嵌入式初学-C语言-十六
  • elasticsearch--RestClient操作索引库(java)
  • linux查询占用端口 杀死占用端口进程
  • 基于OpenCV+MFC的视频读取与对象跟踪平台
  • MathType7.4中文版本功能详解!你的数学公式编辑神器
  • Conda Shell初始化指南:激活你的开发环境
  • RK3568平台开发系列讲解(文件系统篇)文件描述符 fd(File Descriptor)是什么?
  • 电脑自动重启是什么原因?重启原因排查和解决办法!
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • Android 控件背景颜色处理
  • Effective Java 笔记(一)
  • git 常用命令
  • GitUp, 你不可错过的秀外慧中的git工具
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • idea + plantuml 画流程图
  • oldjun 检测网站的经验
  • React的组件模式
  • Spring声明式事务管理之一:五大属性分析
  • vuex 笔记整理
  • 初识 beanstalkd
  • 关于Flux,Vuex,Redux的思考
  • 聚类分析——Kmeans
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 免费小说阅读小程序
  • 跳前端坑前,先看看这个!!
  • 小而合理的前端理论:rscss和rsjs
  • 一文看透浏览器架构
  • 智能合约Solidity教程-事件和日志(一)
  • Java数据解析之JSON
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • ​十个常见的 Python 脚本 (详细介绍 + 代码举例)
  • #git 撤消对文件的更改
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • (55)MOS管专题--->(10)MOS管的封装
  • (Java数据结构)ArrayList
  • (差分)胡桃爱原石
  • (计算机网络)物理层
  • (六)c52学习之旅-独立按键
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (转)iOS字体
  • ***通过什么方式***网吧
  • .Net 6.0--通用帮助类--FileHelper
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .net core webapi 大文件上传到wwwroot文件夹
  • .net 无限分类