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到手機中燒錄固件測試即可