Bluetooth bug resolved on Google/关于谷歌蓝牙bug的解决

最后更新于:2022-04-01 14:48:31

MTK 版本蓝牙设置部分有很大修改,L版本去除了蓝牙可见性设置,只有当手机处于蓝牙设置界面(BluetoothSetting)时才会打开可见性,才能被其他手机搜索到,当退出蓝** 牙设置界面时,将关闭可见性。但是,当一直停留在蓝牙设置界面关闭蓝牙,再打开时,即使此时还在蓝牙设置界面,对外也是不可见。这是Google的bug。 如果希望当在蓝牙设置界面时,不管第几次打开蓝牙,蓝牙都能对外可见,修改方式如下: 在BluetoothSettings.java文件的onBluetoothStateChanged方法中,添加如下: ~~~ @Override public void onBluetoothStateChanged(int bluetoothState) { super.onBluetoothStateChanged(bluetoothState); //Engineer-Jsp add by mtk start if( bluetoothState==BluetoothAdapter.STATE_ON) { mInitiateDiscoverable=true; } //Engineer-Jsp add by mtk end updateContent(bluetoothState); } ~~~ 还有一个bug,MTK 版本中,蓝牙只有在蓝牙设置界面(Bluetooth Setting)可见性才会打开,离开此界面蓝牙将对外不可见。如果要修改为只要打开蓝牙,即使离开蓝牙 界面,蓝牙也一直可见,方法如下: packages\apps\settings\src\com\android\settings\bluetooth\BluetoothSettings.java ~~~ @Override public void onPause() { super.onPause(); if (mBluetoothEnabler != null) { mBluetoothEnabler.pause(); } // Engineer-Jsp add by mtk // mLocalAdapter.setScanMode(BluetoothAdapter.SCAN_MODE_CONNECTABLE); if (isUiRestricted()) { return; } getActivity().unregisterReceiver(mReceiver); } ~~~ 注释此句: ~~~ // mLocalAdapter.setScanMode(BluetoothAdapter.SCAN_MODE_CONNECTABLE); ~~~ 添加后使用mmm 的方式编译,编译完后通过snod的方式打包进system.img,然后download到手机中烧录固件测试即可
';