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); }
// Set connection configuration and request connection to given MAC address public static void Connect(string DeviceAddress) { WifiP2pConfig config = new WifiP2pConfig { DeviceAddress = DeviceAddress }; config.Wps.Setup = WpsInfo.Pbc; config.GroupOwnerIntent = 0; Manager.Connect(Channel, config, new ConnectActionListener()); //System.Threading.Thread.Sleep(1000); //Manager.CancelConnect(Channel, new ConnectActionListener()); }
private void OnListViewItemClick(object sender, AdapterView.ItemClickEventArgs itemClickEventArgs) { var peer = mAdapter.GetItem(itemClickEventArgs.Position); WifiP2pConfig conf = new WifiP2pConfig { DeviceAddress = peer.Address, Wps = { Setup = WpsInfo.Pbc } }; mManager.Connect(mChannel, conf, new WifiDirectActionListener(this, "Connect", () => { })); }
/// <summary> /// <see cref="Activity.OnCreate(Bundle)"/> /// </summary> override protected void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.activity_client); m_Views = new ClientViews(this); m_Views.ButtonProgressBar.Visibility = ViewStates.Gone; m_Views.GlobalProgressBar.Visibility = ViewStates.Visible; m_Views.TitleLayout.Visibility = ViewStates.Gone; m_Views.NoPeersLayout.Visibility = ViewStates.Gone; m_Views.RefreshLayout.SetOnRefreshListener(this); m_Views.RefreshButton.SetOnClickListener(new BaseOnClickListener(v => { m_Views.RefreshButton.Visibility = ViewStates.Invisible; m_Views.ButtonProgressBar.Visibility = ViewStates.Visible; StartDiscovering(); })); m_CurrentPeers = new HashSet <WifiP2pDevice>(); m_Adapter = new WifiPeerAdapter(m_CurrentPeers, false, device => { WifiP2pConfig config = new WifiP2pConfig { DeviceAddress = device.DeviceAddress }; WifiP2pManager.Connect(WifiP2pChannel, config, new WifiP2pActionListener(this, EWifiP2pAction.Connect)); }); m_Views.PeersRecyclerView.SetAdapter(m_Adapter); m_PermissionService = new PermissionService(this); StartDiscovering(); }
public void Connect(WifiP2pConfig config) { _manager.Connect(_channel, config, new MyActionListner(this, "Connect", () => { })); }