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);
             }
         }
     }));
 }
Example #5
0
 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();
 }
Example #6
0
 private void Listener_ConnectionReceived(StreamSocketListener sender, StreamSocketListenerConnectionReceivedEventArgs args)
 {
     OnConnectionReceived?.Invoke(sender, args);
 }