Вы хотите подключиться к последовательному устройству Bluetooth с помощью Xamarin. Android?
Если да,
Сначала найдите экземпляр по умолчанию BluetoothAdapter
на Android устройства и определите, включено ли оно:
BluetoothAdapter adapter = BluetoothAdapter.DefaultAdapter;
if(adapter == null)
throw new Exception("No Bluetooth adapter found.");
if(!adapter.IsEnabled)
throw new Exception("Bluetooth adapter is not enabled.");
Далее получите экземпляр BluetoothDevice
, представляющий физическое устройство, к которому вы подключаетесь. Вы можете получить список сопряженных устройств, используя коллекцию BondedDevices
адаптера. Я использую простой LINQ, чтобы найти нужное устройство:
BluetoothDevice device = (from bd in adapter.BondedDevices
where bd.Name == "NameOfTheDevice" select bd).FirstOrDefault();
if(device == null)
throw new Exception("Named device not found.");
Наконец, используйте метод устройства CreateRfCommSocketToServiceRecord
, который вернет BluetoothSocket
, который можно использовать для подключения и связи. Обратите внимание, что указанный ниже UUID является стандартным UUID для SPP:
_socket = device.CreateRfcommSocketToServiceRecord(UUID.FromString("00001101-0000-1000-8000-00805f9b34fb"));
await _socket.ConnectAsync();
Теперь, когда устройство подключено, связь происходит через свойства InputStream
и OutputStream
, которые находятся в объекте BluetoothSocket. Эти свойства стандарт. NET Поток объектов и может использоваться точно так, как вы ожидаете:
// Read data from the device
await _socket.InputStream.ReadAsync(buffer, 0, buffer.Length);
// Write data to the device
await _socket.OutputStream.WriteAsync(buffer, 0, buffer.Length);
, и вы можете обратиться к { ссылка }