Android系統之路(初識MTK) ------ Bluetooth bug resolved on Google/關於谷歌藍牙bug的解決

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到手機中燒錄固件測試即可
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章