Esempio n. 1
0
 public BluetoothClientConnection(BluetoothManager bluetoothManager, BluetoothDevice device, UUID guid)
 {
     this._BluetoothManager        = bluetoothManager;
     this._Device                  = device;
     this._SdpUuid                 = guid;
     this.ConnectionEstablishState = ConnectionEstablishState.Created;
 }
Esempio n. 2
0
        private async void onQRCodeConnectClicked(object sender, EventArgs e)
        {
            var scanner    = new ZXing.Mobile.MobileBarcodeScanner();
            var scanResult = await scanner.Scan();

            if (scanResult != null && scanResult.Text != "")
            {
                var              connectInfo     = Connection.DecodeBluetoothConnection(scanResult.Text);
                Guid             guid            = connectInfo.Guid;
                IBluetoothDevice bluetoothDevice = DependencyService.Get <IBluetoothManager>().GetBluetoothDevice(connectInfo.DeviceAddress);


                IConnectionManager       connectionManager = DependencyService.Get <IConnectionManager>();
                IClientConnection        currentConnection = connectionManager.ControllerConnection as IClientConnection;
                ConnectionEstablishState connectState      = ConnectionEstablishState.Failed;
                IClientConnection        connection        = DependencyService.Get <IBluetoothManager>().CreateRfcommClientConnection(bluetoothDevice, guid);
                if (connectionManager.ControllerConnection != null)
                {
                    bool result = await DisplayAlert("Connect", "Stop Current Connection ?", "Yes", "No");

                    if (result)
                    {
                        if (currentConnection.ConnectionEstablishState == ConnectionEstablishState.Connecting)
                        {
                            currentConnection.AbortConnecting();
                        }
                    }
                }
                connectionManager.ControllerConnection = connection;
                connectState = await connection.ConnectAsync();
            }
        }
        private async void onConnectClicked(object sender, EventArgs e)
        {
            if (_SelectedGuid == null)
            {
                Debug.WriteLine("NO UUID SELECTED");
                return;
            }
            IConnectionManager       connectionManager = DependencyService.Get <IConnectionManager>();
            IClientConnection        currentConnection = connectionManager.ControllerConnection as IClientConnection;
            ConnectionEstablishState connectState      = ConnectionEstablishState.Failed;
            IClientConnection        connection        = DependencyService.Get <IManagerManager>().BluetoothManager.CreateRfcommClientConnection(_BluetoothDevice, (Guid)_SelectedGuid);

            if (connectionManager.ControllerConnection != null)
            {
                bool result = await DisplayAlert("Connect", "Stop Current Connection ?", "Yes", "No");

                if (result)
                {
                    if (currentConnection.ConnectionEstablishState == ConnectionEstablishState.Connecting)
                    {
                        currentConnection.AbortConnecting();
                    }
                }
            }
            connectionManager.ControllerConnection = connection;
            connectState = await connection.ConnectAsync();

            if (connectState == ConnectionEstablishState.Succeeded)
            {
            }
        }
Esempio n. 4
0
 private void OnControllerConnectionEstablishResult(IConnection connection, ConnectionEstablishState connectionEstablishState)
 {
     this.Dispatcher.Invoke(() =>
     {
         tb_ConnectionState.Text = connectionEstablishState.ToString();
     });
 }
 private async void OnConnectionRequested(WiFiDirectConnectionListener sender, WiFiDirectConnectionRequestedEventArgs args)
 {
     WiFiDirectConnectionRequest ConnectionRequest = args.GetConnectionRequest();
     WiFiDirectDevice wfdDevice = await WiFiDirectDevice.FromIdAsync(ConnectionRequest.DeviceInformation.Id);
     EndpointPairs = wfdDevice.GetConnectionEndpointPairs();
     _ConnectionEstablishState = ConnectionEstablishState.Succeeded;
     OnConnectionEstalblishResult?.Invoke(this, _ConnectionEstablishState);
 }
 public void StartServer()
 {
     publisher = new WiFiDirectAdvertisementPublisher();
     listener = new WiFiDirectConnectionListener();
     publisher.Advertisement.ListenStateDiscoverability = WiFiDirectAdvertisementListenStateDiscoverability.Normal;
     listener.ConnectionRequested += OnConnectionRequested;
     _ConnectionEstablishState = ConnectionEstablishState.Connecting;
     OnConnectionEstalblishResult(this, _ConnectionEstablishState);
     publisher.Start();
     StartUDP(50001);
     //TextBlock_ConnectedState.Text = "开始广播……";
 }
            public async Task <ConnectionEstablishState> ConnectAsync()
            {
                await Task.Run(() =>
                {
                    WifiP2pConfig config = new WifiP2pConfig();
                    config.DeviceAddress = (WifiDirectDevice as WifiDirectDevice).Address;
                    WifiP2pManager droidWifiP2pManager = _WifiDirectManager._DroidWifiP2pManager;
                    droidWifiP2pManager.Connect(_WifiDirectManager._Channel, config, _ConnectStateListener);
                    while (!_ConnectingSucceeded)
                    {
                        if (_ReconnectMark)
                        {
                            _ReconnectMark = false;
                            droidWifiP2pManager.Connect(_WifiDirectManager._Channel, config, _ConnectStateListener);
                        }
                    }
                    WifiP2pActionListener connectionInfoListener = new WifiP2pActionListener(_WifiDirectManager);
                    _WifiDirectManager._DroidWifiP2pManager.RequestConnectionInfo(_WifiDirectManager._Channel, connectionInfoListener);
                    while (_WifiDirectManager._LatestWifiP2pInfo == null)
                    {
                        System.Diagnostics.Debug.WriteLine("HERE2");
                    }
                    WifiP2pInfo preInfo = null;
                    while (_WifiDirectManager._LatestWifiP2pInfo.GroupOwnerAddress == null)
                    {
                        if (preInfo != _WifiDirectManager._LatestWifiP2pInfo)
                        {
                            preInfo = _WifiDirectManager._LatestWifiP2pInfo;
                            _WifiDirectManager._DroidWifiP2pManager.RequestConnectionInfo(_WifiDirectManager._Channel, connectionInfoListener);
                            System.Diagnostics.Debug.WriteLine("CHANGE");
                        }
                        System.Diagnostics.Debug.WriteLine("HERE3");
                    }
                    if (_ConnectingSucceeded)
                    {
                        ConnectionEstablishState = ConnectionEstablishState.Succeeded;
                    }
                    OnConnectionEstalblishResult?.Invoke(this, ConnectionEstablishState);
                });

                try
                {
                    System.Diagnostics.Debug.WriteLine("Connect Succeed " + _WifiDirectManager._LatestWifiP2pInfo.GroupOwnerAddress.HostAddress);
                }
                catch (Exception)
                {
                    var f**k = _WifiDirectManager._LatestWifiP2pInfo;
                }


                return(ConnectionEstablishState);
            }
Esempio n. 8
0
 private void _OnConnectionResult(IConnection connection, ConnectionEstablishState connectionEstablishState)
 {
     if (connectionEstablishState == ConnectionEstablishState.Succeeded)
     {
         _ConnectionStateSnackBar.BarType = BarType.Succeed;
         //_ConnectionStateSnackBar.FadeTo(0, 1000);
     }
     if (connectionEstablishState == ConnectionEstablishState.Disconnected)
     {
         _ConnectionStateSnackBar.BarType = BarType.Error;
     }
     if (connectionEstablishState == ConnectionEstablishState.Connecting)
     {
         _ConnectionStateSnackBar.BarType = BarType.Error;
     }
 }
Esempio n. 9
0
 private void OnConnectionEstalblishResult(IConnection connection, ConnectionEstablishState connectionEstablishState)
 {
 }
Esempio n. 10
0
 private void onControllerConnectionEstalblishResult(IConnection connection, ConnectionEstablishState connectionEstablishState)
 {
     connectionStateLabel.Text = connectionEstablishState.ToString();
 }