У меня была эта проблема с пользовательским устройством Bluetooth, которое я собрал. Вместо использования createRfcommSocketToServiceRecord в вашем потоке подключения попробуйте что-то похожее на следующее:
public ConnectThread(BluetoothDevice device) throws
SecurityException, NoSuchMethodException, IllegalArgumentException,
IllegalAccessException, InvocationTargetException {
mmDevice = device;
BluetoothSocket tmp = null;
// Force a BluetoothSocket for a connection with the
// given BluetoothDevice
Method m = mmDevice.getClass().getMethod("createRfcommSocket",
new Class[]{int.class});
mmSocket = (BluetoothSocket)m.invoke(mmDevice, Integer.valueOf(1));
}
Где мой mmDevice - твой btDevice.
Это вызывает сокет соединения между неизвестным устройством и смартфоном. Из того, что я слышал, в Android есть проблема с подключением «не похожих» устройств. Стоит выстрел.