Сопряжение Bluetooth не работает должным образом. Я разрабатываю приложение на основе сопряжения Bluetooth с UART. Здесь я включил свою концепцию и программу. Помогите мне решить проблему.
Мой ожидаемый результат: если пользователь нажимает кнопку «Подключиться». Это должна быть пара без пользовательского ввода и экрана подтверждения для запроса пары и PIN-кода. Наконец, устройство отвечает на подключение.
Мой фактический результат - это экран подтверждения, и откроется всплывающее окно ввода данных пользователем. После этого устройство будет сопряжено. Наконец, устройство не отвечает на сообщение «Я подключен».
Я застрял в этой проблеме более 2 дней. Помогите мне решить эту проблему.
<сильный>1. Зарегистрируйте СОПРЯЖЕНИЕ в методе onstart()
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();
}
}
}
};
/* После подключения устройств я создаю Bond*/
@Override
public void onDeviceConnected(BluetoothDevice device) {
device.createBond();
}