蓝牙配对无法正常工作。我正在开发基于蓝牙与 UART 配对的应用程序。在这里,我包含了我的概念和程序。帮助我解决问题。
我的预期结果是如果用户按下连接按钮。它应该在没有用户输入和配对请求和 PIN 的确认屏幕的情况下配对。最后设备响应连接。
我的实际结果是确认屏幕和用户输入弹出窗口将打开。之后设备配对。最后设备没有回复我已连接。
我被困在那个问题超过 2 天。帮我解决这个问题。
1.在onstart()方法中注册PAIRING
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_PAIRING_REQUEST);
this.registerReceiver(mPairingRequestReceiver, filter);
2. BroadcastReceiver,用于接收PairingRequest。
private BroadcastReceiver mPairingRequestReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(BluetoothDevice.ACTION_PAIRING_REQUEST)) {
try {
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
int pin = intent.getIntExtra("android.bluetooth.device.extra.PAIRING_KEY", 123456);
//the pin in case you need to accept for an specific pin
byte[] pinBytes;
pinBytes = ("" + pin).getBytes("UTF-8");
device.setPin(pinBytes);
} catch (Exception e) {
Log.e(TAG, "Error occurs when trying to auto pair");
e.printStackTrace();
}
}
}
};
/* 连接设备后,我正在创建绑定*/
@Override
public void onDeviceConnected(BluetoothDevice device) {
device.createBond();
}