Task DoConnect() { return(Task.Run(() => { bool success = NativeGatt.Connect(); _connectedHandle.WaitOne(); })); }
public bool Transmit(BluetoothGattCharacteristicModel characteristicModel, byte[] buffer) { bool result = default; if (_gatt.Connect()) { var characteristic = _gatt.GetService(Java.Util.UUID.FromString(characteristicModel.ServiceUuid.ToString())) .GetCharacteristic(Java.Util.UUID.FromString(characteristicModel.Uuid.ToString())); characteristic.SetValue(buffer); result = _gatt.WriteCharacteristic(characteristic); } return(result); }
Task PlatformConnect() { TaskCompletionSource <bool> tcs = new TaskCompletionSource <bool>(); void handler(object s, ConnectionStateEventArgs e) { ConnectionStateChanged -= handler; switch (e.Status) { case ABluetooth.GattStatus.Success: tcs.SetResult(e.State == ABluetooth.ProfileState.Connected); break; default: tcs.SetResult(false); break; } } ConnectionStateChanged += handler; bool success = _gatt.Connect(); if (success) { if (IsConnected) { return(Task.FromResult(true)); } return(tcs.Task); } else { ConnectionStateChanged -= handler; return(Task.FromException(new OperationCanceledException())); } }
private void PerformConnectToDevice(IDevice device) { var bleDevice = device.NativeDevice as BluetoothDevice; if (bleDevice == null) return; var remoteDevice = _adapter.GetRemoteDevice(bleDevice.Address); if (remoteDevice == null) return; _gatt = remoteDevice.ConnectGatt(Android.App.Application.Context, false, _callback); _gatt.Connect(); }