修改蓝牙默认名称的3种方法
方法一:
ALPS.L1.MP3.V2.21_TOP6753_65C_L1/
/system/bt/btif/src/btif_dm.c文件中,btif_default_local_name []数组的默认定义为空,如下:
static char btif_default_local_name[DEFAULT_LOCAL_NAME_MAX+1] = {'\0'};
修改为需要客制化的名称,例如:Bluetooth
static char btif_default_local_name[DEFAULT_LOCAL_NAME_MAX+1] = "Bluetooth";
方法二:
前提条件:
btif_default_local_name [] 数组的默认定义为空
static char btif_default_local_name[DEFAULT_LOCAL_NAME_MAX+1] = {'\0'};
修改方法(1):修改/device/generic/common/bluetooth/bdroid_buildcfg.h文件中的蓝牙名称宏定义BTM_DEF_LOCAL_NAME
#ifndef _BDROID_BUILDCFG_H
#define _BDROID_BUILDCFG_H
#define BTM_DEF_LOCAL_NAME "Android Bluedroid" //修改此处为自己需要的蓝牙默认名称
#endif
方法三:
前提条件:
(1) btif_default_local_name [] 数组的默认定义为空
static char btif_default_local_name[DEFAULT_LOCAL_NAME_MAX+1] = {'\0'};
(2) /system/bt/include/bt_target.h文件中的蓝牙名称宏定义BTM_DEF_LOCAL_NAME为空
#ifndef BTM_DEF_LOCAL_NAME
#define BTM_DEF_LOCAL_NAME "" //修改此处为空
#endif
(3) /device/generic/common/bluetooth/bdroid_buildcfg.h文件中的蓝牙名称宏定义BTM_DEF_LOCAL_NAME为空
#ifndef _BDROID_BUILDCFG_H
#define _BDROID_BUILDCFG_H
#define BTM_DEF_LOCAL_NAME "" //修改此处为空
#endif
修改方法:
满足上面的前置条件,此时默认的蓝牙名称会读取 ro.product.model 属性值作为蓝牙默认名称;
在文件/system/bt/btif/src/btif_dm.c中已经定义:
#define PROPERTY_PRODUCT_MODEL "ro.product.model"
在custom.conf文件通过bluetooth.HostName
[email protected]@ 来指定默认的蓝牙;
该property值的设置在:/device/mediatek/k35v1_64_op09_6m/custom.conf //k35v1_64_op09_6m为项目的名称
bluetooth.HostName = @ro.product.model@
[ro.product.model]: [k55v1_64_om] //log中看到的值
原理分析:/system/bt/btif/src/btif_dm.c
static char* btif_get_default_local_name() {
if (btif_default_local_name[0] == '\0') // 方法一
{
int max_len = sizeof(btif_default_local_name) - 1;
if (BTM_DEF_LOCAL_NAME[0] != '\0') // 方法二
{
strncpy(btif_default_local_name, BTM_DEF_LOCAL_NAME, max_len);
}
else
{
char prop_model[PROPERTY_VALUE_MAX]; // 方法三
property_get(PROPERTY_PRODUCT_MODEL, prop_model, "");
strncpy(btif_default_local_name, prop_model, max_len);
}
btif_default_local_name[max_len] = '\0';
}
return btif_default_local_name;
}