在有源码的情况下
external\bluetooth\bluedroid\btif\src\btif.dm.c
Android修改蓝牙默认名称
在BTM_DEF_LOCAL_NAME未定义名称的情况下可以自行定义名称,若找不到此常量,还能在以下函数中修改:
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')//BTM_DEF_LOCAL_NAME定义不为空时
{
char temp[] = "自定义名称";//长度不要超过max_len
//strncpy(btif_default_local_name, BTM_DEF_LOCAL_NAME, max_len);//源代码
strncpy(btif_default_local_name, temp, max_len);
}
else//BTM_DEF_LOCAL_NAME定义为空时用的device model name
{
char prop_model[PROPERTY_VALUE_MAX];
property_get(PROPERTY_PRODUCT_MODEL, prop_model, "");
char temp[] = "自定义名称";//长度不要超过max_len
strncpy(btif_default_local_name, temp, max_len);
//strncpy(btif_default_local_name, prop_model, max_len);//原代码
}
btif_default_local_name[max_len] = '\0';
}
return btif_default_local_name;
}
然后编译生成bluetooth_default.so,替换掉设备的system/lib/hw/bluetooth_default.so,重启即可生效。