Android系统之路(初识MTK) ------ Bluetooth bug resolved on Google/关于谷歌蓝牙bug的解决

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jspping/article/details/50502772
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到手机中烧录固件测试即可
阅读更多

没有更多推荐了,返回首页