[Android M] Bluedroid修改蓝牙默认名称

修改蓝牙默认名称的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;
}

你可能感兴趣的:(android,android,蓝牙)