Android8.1 MTK平台 修改蓝牙默认名称

这篇具有很好参考价值的文章主要介绍了Android8.1 MTK平台 修改蓝牙默认名称。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

的默认蓝牙名称为 Android Bluedroid

通过搜索你会找到如下文件 device/generic/common/bluetooth/bdroid_buildcfg.h

#ifndef _BDROID_BUILDCFG_H
#define _BDROID_BUILDCFG_H

#define BTM_DEF_LOCAL_NAME   "Android Bluedroid"

#endif

如果单一情况你修改此处即可,但如果多台烧录此 room 的设备同时打开蓝牙,你搜索到的蓝牙名称都为 BTM_DEF_LOCAL_NAME 对应的值

为了避免此种情况,我们采用另一种修改方式

将蓝牙名称修改为 你当前设备的 displayID,如果包含 _ ,则取 _ 之前的名称再加上 mac 地址的后六位

举个栗子, 设备 displayID 为 MTK6737-VT_V1.02 蓝牙mac地址为 EF:6D:3C:22:25:56, 则最终的蓝牙名称为 MTK6737-VT_222556

frameworks\base\core\java\android\bluetooth\BluetoothAdapter.java文章来源地址https://www.toymoban.com/news/detail-850101.html

 @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
    public boolean enable() {
        if (isEnabled()) {
            if (DBG) Log.d(TAG, "enable(): BT already enabled!");
            updateBleName();//cczheng add
            return true;
        }
        try {
           boolean enableResult = mManagerService.enable(ActivityThread.currentPackageName());
           if (enableResult) {
              updateBleName();//cczheng add
           }
           return enableResult /*mManagerService.enable(ActivityThread.currentPackageName())*/;
        } catch (RemoteException e) {Log.e(TAG, "", e);}
        return false;
    }


    /**
    *  cczheng add updateBleName whenBluetooth enable
    */
    private void updateBleName(){
       final String ctag = "ccz";
       final String bleName=getName();
        Log.e(ctag,".bleName:"+bleName);
        new Thread(){
            @Override
            public void run() {
                super.run();
                int timeCounter=0;
                String macStr=null;
                while(timeCounter<20){//500 *20 =10,000 ms
                    macStr=getAddress();
                    if(TextUtils.isEmpty(macStr) || macStr.contains("00:00:00")){
                        try { sleep(500); } catch (InterruptedException e) {}
                    }else{
                        break;
                    }
                    timeCounter++;
                }
                Log.e(ctag,".mac:"+macStr);

                if(!TextUtils.isEmpty(macStr) &&  !macStr.contains("00:00:00")){
                    timeCounter=0;
                    macStr = macStr.substring(macStr.length() - 8, macStr.length());
                    macStr = macStr.replaceAll(":", "");
                     
                    String display = android.os.Build.DISPLAY;
                    if (display.contains("_")){
                        display = display.split("_")[0];
                    }else{
                        display = "BT";
                    }
                   
                    String newBleName = display + "_" + macStr;
                     Log.e(ctag,".newBleName:"+newBleName);
                    if(!newBleName.equals(bleName)){
                        if(bleName.equals("ANDROID BT")
                            || bleName.contains("Android Bluedroid")
                            || bleName.contains("BT")
                            || bleName.contains(display + "_")){
                            try{
                                while (mService == null || mService.getState() != STATE_ON) {
                                    try{ sleep(200); } catch (InterruptedException e){}
                                    timeCounter++;
                                    if (timeCounter > 20) {
                                        break;
                                    }
                                }
                                Log.e(ctag,".setbleName:"+newBleName);
                                mService.setName(newBleName);
                            }catch (RemoteException e){
                                e.printStackTrace();
                            }
                            Log.e(ctag,".setbleNameFinished:"+newBleName);
                        }
                        
                    }
                    
                }
            }
        }.start();
    }

到了这里,关于Android8.1 MTK平台 修改蓝牙默认名称的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android修改默认gradle路径

    Android Studio每次新建项目,都会默认在C盘生成并下载gradle相关文件,由于C盘空间有限,没多久C盘就飘红了,于是就需要把gradle相关文件转移到其他盘 具体路径一般是:C:Users用户 .gradle 复制C:Users用户.gradle文件夹下内容,到D:AndroidGradle 打开计算机系统属性→高级系统设

    2024年02月10日
    浏览(34)
  • Android Studio 默认配置路径修改

    Android Studio 安装完成后,默认会在 C 盘对应用户目录下生成存储和缓存目录文件,我们需要迁移文件并配置索引路径,使 AS 到新目录读取我们的配置 .android :我们在 AVD Manager 中配置的 AVD 就会存储在这里,随便一个 AVD 动辄就 10 G 左右,所以只要不是「仓鼠盘」,一定要修改

    2023年04月14日
    浏览(38)
  • [Android]修改应用包名、名称、版本号、Icon以及环境判断和打包

    在Android Studio中更改项目的包名涉及几个步骤: 打开项目结构: 在Android Studio中,确保您处于Android视图模式(在左侧面板顶部有一个下拉菜单可以选择)。 重命名包名: 在项目视图中,找到您的包名(例如com.gamin.learndemo),右键点击它。 选择Refactor  Rename。 在弹出的对话框

    2024年02月05日
    浏览(48)
  • Android 12 修改系统音量默认初始值

    1.需求:Android 系统出厂默认的音量值过小,需要把音量默认初始值改成音量的最大值. 2.涉及核心代码: 3.系统音量默认初始值在AudioSystem.java中定义,代码如下: 3.系统音量最大值和最小值定义在AudioService.java 中,代码如下: ------------------------------------------------------------修改方案一-

    2024年02月10日
    浏览(64)
  • Android11.0 修改系统默认显示大小

    系统设置中的显示大小调整的就是屏幕密度,调整的越小,屏幕显示的内容就越多。 在系统中都会有定义一个默认的屏幕密度 设置中显示大小相关内容 源码:/packages/apps/Settings/res/xml/display_settings.xml 源码:/packages/apps/Settings/src/com/android/settings/display/ScreenZoomSettings.java 密度缩

    2024年02月09日
    浏览(58)
  • Android 11.0 系统修改usb连接电脑mtp和PTP的显示名称

      在11.0的系统产品rom定制化开发中,在usb模块otg连接电脑,调整为mtp文件传输模式的时候,这时可以在电脑看到手机的内部存储 显示在电脑的盘符中,会有一个mtp名称做盘符,所以为了统一这个名称,就需要修改这个名称,接下来分析下处理的方法来解决这个问题 MTP的全称

    2024年01月17日
    浏览(55)
  • Android 如何修改按钮默认的讨厌的蓝紫色

    1.在设置好按钮背景时,发现钮颜色始终没有改变。   2.原来是默认主题themes的问题,在这里修改主题即可。 3.找到(res)-(values)-(themes)-(themes.xml),双击打开themes.xml文件。  4.修改parent内容为: Theme.MaterialComponents.DayNight.Bridge  5.修改主题样式后,就可以修改按钮背景

    2024年02月11日
    浏览(37)
  • Android Studio 修改AVD模拟器文件默认存储路径

    AndroidStudio默认的模拟器文件路径为:C:Users用户名.androidavd路径,通常windows系统上,C盘不是太大,而avd文件却不小,通常几个GB,所以有必要将avd路径换到一个非系统盘。 更换方法如下:Help - Edit Custom Properties...  增加一个新的系统变量将覆盖默认值:  保存,重启ide,重

    2024年02月16日
    浏览(62)
  • uiautomatorViewer无法获取Android8.0手机屏幕截图的解决方案

    做APP UI自动化的时候,会碰到用uiautomatorViewer在Android 8.0及以上版本的手机上,无法获取到手机屏幕截图,无法获取元素定位信息的问题,会有以下的报 在低版本的Android手机上,则没有这个问题,可以顺利截图,但是现在手机的版本通常都不会低于Android8.0。   uiautomatorViewe

    2024年02月15日
    浏览(40)
  • 【Windows】电脑修改已连接的蓝牙设备名称

    问题 有好几个同款的蓝牙耳机,连接电脑后默认显示名字一样,想像手机上一样备注这些耳机的名称。 网上搜索半天,只有修改电脑本身蓝牙名称的方法,而不是修改连接的设备的名称!摸索半天,得出下边的方法 修改连接的蓝牙设备名称 注1: 此方法重启后可能会恢复如

    2024年02月13日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包