Android修改蓝牙默认名称

android下,如果厂家没有对蓝牙默认名称做修改,那蓝牙的默认名称为“Android Bluedroid”。蓝牙首次打开时就会从bluedroid获取蓝牙名称,并保存到文件,后面就是使用这个名称了,除非用户在设置里手动修改蓝牙名称。
Bluedroid中蓝牙获取名称代码在:

android\external\bluetooth\bluedroid\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;
}

Bluedroid中btif_default_local_name是没初始化的,就会检测BTM_DEF_LOCAL_NAME是否定义了,若定义了,就会使用BTM_DEF_LOCAL_NAME定义的名称。如果BTM_DEF_LOCAL_NAME没定义,就会使用PROPERTY_PRODUCT_MODEL(ro.product.model)属性的定义。

BTM_DEF_LOCAL_NAME在bluedroid中定义如下:

android\external\bluetooth\bluedroid\include\bt_target.h
#ifndef BTM_DEF_LOCAL_NAME
#define BTM_DEF_LOCAL_NAME      ""
#endif

但在这之前,就有一个地方定义了BTM_DEF_LOCAL_NAME,所以该处定义不起作用,BTM_DEF_LOCAL_NAME定义在:

Android\device\generic\common\bluetooth\bdroid_buildcfg.h
#define BTM_DEF_LOCAL_NAME   "Android Bluedroid"

这也就是为什么android默认的蓝牙名称为”Android Bluedroid”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值