蓝牙自动连接

感谢 ClsUtils 类的作者,感谢 oschina.net 上提供的android源代码

(一)  先说说我自己的试验

调用 ClsUtils::createBond() 方法,会弹出一个输入配对密码的对话框,

(二)  跟踪源代码

见源代码 BluetoothPairingDialog.java 

    onClick() 方法中

        DialogInterface.BUTTON_POSITIVE :    

                    (1) byte[] pinBytes = BluetoothDevice.convertPinToBytes(value);

                    (2) mDevice.setPin(pinBytes);

        DialogInterface.BUTTON_NEGATIVE    

                    mDevice.cancelPairingUserInput();

所以可以猜测,mDevice.setPin(pinBytes) 除了设置 pin以外,还带有关闭对话框的功能。

(三) 我的做法

在 BluetoothConnectActivityReceiver 中,

只需要调用 ClsUtils.setPin() 方法就可以了。

不需要调用 ClsUtils.createBond() ,如果调用了 ClsUtils.createBond() 可能会再弹出一个对话框。

不需要调用 ClsUtils.cancelPairingUserInput()

注意:在 ClsUtils.setPin() 方法中,需要加入 byte[] pinBytes = BluetoothDevice.convertPinToBytes(strPin);

BluetoothDevice.convertPinToBytes(strPin) 的实现请参照 BluetoothDevice.java 中的实现

你可能感兴趣的:(蓝牙自动连接)