Из CONNECTION_UUID
, который вы указали в своем коде, я предполагаю, что вы подключаетесь через последовательную плату Bluetooth. Я еще не уверен в проблеме, однако я подумал написать этот ответ, чтобы найти вероятное решение, которое может решить вашу проблему.
Я думаю, что в случае сопряженных устройств вам нужно инициировать соединение по безопасному каналу. В настоящее время вы используете небезопасный канал.
Из документации ...
Канал связи не будет иметь аутентифицированного ключа связи, т.е.
он будет подвергаться атакам «человек посередине». Для Bluetooth 2.1
устройства, ключ связи будет зашифрован, так как шифрование обязательно.
Для устаревших устройств (до Bluetooth 2.1 устройств) ключ ссылки будет
не быть зашифрованным. Используйте createRfcommSocketToServiceRecord (UUID), если
желателен зашифрованный и аутентифицированный канал связи.
Следовательно, вы можете рассмотреть возможность использования createRfcommSocketToServiceRecord()
для вашего дела.
Вместо этого
BluetoothSocket mBluetoothSocket = mBluetoothDevice.createInsecureRfcommSocketToServiceRecord(CONNECTION_UUID);
Используйте это ...
BluetoothSocket mBluetoothSocket = mBluetoothDevice.createRfcommSocketToServiceRecord(CONNECTION_UUID);
Надеюсь, это решит вашу проблему.
Из комментария ниже - UUID, который на самом деле работал здесь: 00001101-0000-1000-8000-00805f9b34fb