#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. оказывается, это была проблема с устройством, к которому я подключался. Приведенный выше код был именно тем, что мне было нужно.