private async void RfcommScanner_Added(object sender, Bluetooth.IBluetoothDevice e) { if (e.Address == BluetoothUtils.AddressStringToInt64("DC:53:60:DD:AE:63")) { //var serviceResult = await e.GetRfcommServicesAsync(); await e.RfcommConnectAsync(); //var serviceResult = await e.GetRfcommServicesForIdAsync(Constants.ServiceId); var serviceResult = await e.GetRfcommServicesAsync(); IRfcommDeviceService service = null; if (serviceResult.Error == BluetoothError.Success && serviceResult.Services.Count > 0) { foreach (var ser in serviceResult.Services) { if (ser.ServiceId == Constants.ServiceId) { service = ser; break; } } } if (service == null) { return; } var connection = new RfcommRXConnection(service, ConnectionGroup); OnConnectionReceived?.Invoke(this, connection); } }
public void Start() { Status = RXScannerStatus.Started; foreach (var connection in _ConnectionList) { OnConnectionReceived?.Invoke(this, connection); connection.ConnectAsync(); } }
private async void RfcommServiceProviderSocketListener_ConnectionReceived(StreamSocketListener sender, StreamSocketListenerConnectionReceivedEventArgs args) { StreamSocket socket = args.Socket; var remoteWin10Device = await BluetoothDevice.FromHostNameAsync(socket.Information.RemoteHostName); var remoteDevice = (BluetoothManager as BluetoothManager).GetBluetoothDeviceFromDeviceInformation(remoteWin10Device.DeviceInformation); System.Diagnostics.Debug.WriteLine("SOME ONE CONNECT:" + remoteWin10Device.DeviceInformation.Id); var connection = new RXRFCommConnection(this, remoteDevice, socket); RfcommConnectionList.Add(connection); connection.Disposed += Connection_Disposed; OnConnectionReceived?.Invoke(this, connection); }
public Task RunAcceptTask() { return(Task.Run(() => { while (true) { var bluetoothSocket = ServerSocket.Accept(); if (bluetoothSocket != null) { var rxDevice = BluetoothDeviceWrapper.GetBluetoothDeviceFromDroidDevice(BluetoothManager as BluetoothManager, bluetoothSocket.RemoteDevice); RfcommConnection rfcommConnection = new RfcommConnection(rxDevice, bluetoothSocket); _Connections.Add(rfcommConnection); OnConnectionReceived?.Invoke(this, rfcommConnection); } } })); }
public void Start( OnConnectionReceived onConnection, OnBytesReceived onBytes ) { Running = true; OnConnection = onConnection; OnBytes = onBytes; Scheduler.Start(); Listeners = Configuration .Endpoints .Select( endpoint => { var socket = ListenerFactory.CreateListener( Scheduler, endpoint, Configuration ); socket.ListenTo( OnSocket ); return socket; }) .ToList(); }
private void Listener_ConnectionReceived(StreamSocketListener sender, StreamSocketListenerConnectionReceivedEventArgs args) { OnConnectionReceived?.Invoke(sender, args); }