BluetoothGatt﹕ android.os.DeadObjectException

968 ワード

Bluetooth 4.0 Bluetoothをオフにしてからオンにし、デバイスを接続するとBluetoothGatt:androidとエラーが発生します.os.DeadObjectException.そして、もっと気持ち悪いのは、try catchがこの異常を捕獲できないということで、私は拭いて拭きました.
経験的な分析では、Bluetoothが再開された後、サービスがバインドされていないため、connect接続を呼び出す可能性があります.
ソリューション:
Bluetoothオープンイベントをリスニングし、Bluetooth Adapterオブジェクトを再初期化し、connectメソッドを遅延呼び出します.
else if (state == BluetoothAdapter.STATE_ON) {
//                    bleService = new BleControler(MaibuWatchApplication.getContext());//      
                    Log.i(TAG, "     ");
                    bizManager.reset();//       ,       DeadObjectException   
                    mHandler.postDelayed(new Runnable() {//    ,            ,   ,    
                        @Override
                        public void run() {
                            bizManager.needBleAutoConn(true);
                        }
                    }, 500);
                }

このような調整を経て、今のところこの吐き気の異常に遭遇していません.