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到手机中烧录固件测试即可