Ошибка при попытке установить соединение Bluetooth с устройства Android C # Xamarin

#c# #android #xamarin #bluetooth #rfcomm

#c# #Android #xamarin #bluetooth #rfcomm

Вопрос:

Я пытаюсь подключить свое устройство Android к другому устройству через Bluetooth с помощью rfcomm. Я работаю на C # / xamarin. Вот мой код….

         BluetoothDevice btDevice = null;

        BluetoothAdapter btAdapter = BluetoothAdapter.DefaultAdapter;
        if(btAdapter != null amp;amp; btAdapter.IsEnabled)
        {
            btDevice = (from bd in btAdapter.BondedDevices
                                        where bd.Name == "NAME"
                                        select bd).FirstOrDefault();
            if (btDevice != null)
            {
                UUID uuid = UUID.FromString("00001101-0000-1000-8000-00805f9b34fb");
                if ((int)Android.OS.Build.VERSION.SdkInt >= 10) // Gingerbread 2.3.3 2.3.4
                    AndroidBluetoothSocket = btDevice.CreateInsecureRfcommSocketToServiceRecord(uuid);
                else
                    AndroidBluetoothSocket = btDevice.CreateRfcommSocketToServiceRecord(uuid);

                AndroidBluetoothSocket.Connect();
            }
        }
 

в последней строке, где вызывается функция Connect(), выдается следующая ошибка:

Java.IO.IOException: «ошибка чтения, возможно, сокет закрыт или время ожидания, read ret: -1»

Устройство Android уже сопряжено с другим устройством. Я пытался самостоятельно получить UUID, но он также возвращает то же значение. Я пробовал функцию Create как с небезопасным, так и с нет. У меня также есть все разрешения Bluetooth, выбранные в AndroidManifest.xml . Я знаю, что он может найти устройство, потому что мой объект AndroidBluetoothSocket устанавливается правильно.

Вы заметите, что мое решение работает так же, как и многие другие, которые вы можете найти там. Я нашел пару ссылок, которые ссылаются на попытку использовать функцию Java, когда это не удается. К сожалению, это не работает, поскольку я использую c #.

Буду признателен за любую помощь.

Комментарии:

1. Похоже, Android уже подключен к другому устройству и не разрешает ваше новое соединение.

2. не могли бы вы уточнить? у меня нет подключенных других устройств. И когда я устанавливаю точку останова после создания, я вижу, что она захватила мое устройство.

3. Ошибка гласит: «Устройство Android уже сопряжено с другим устройством». не могли бы вы подключиться дважды?

4. оказывается, это была проблема с устройством, к которому я подключался. Приведенный выше код был именно тем, что мне было нужно.