public override void OnReceive(Context context, Intent intent)
        {
            var action = intent.Action;

            if (WifiP2pManager.WifiP2pStateChangedAction.Equals(action))
            {
                // UI update to indicate wifi p2p status.
                var state = intent.GetIntExtra(WifiP2pManager.ExtraWifiState, -1);
                if (state == (int)WifiP2pState.Enabled)
                {
                    // Wifi Direct mode is enabled
                    _activity.IsWifiP2PEnabled = true;
                }
                else
                {
                    _activity.IsWifiP2PEnabled = false;
                    _activity.ResetData();
                }
                Log.Debug(WiFiDirectActivity.Tag, "P2P state changed - " + state);
            }
            else if (WifiP2pManager.WifiP2pPeersChangedAction.Equals(action))
            {
                // request available peers from the wifi p2p manager. This is an
                // asynchronous call and the calling activity is notified with a
                // callback on PeerListListener.onPeersAvailable()
                _manager?.RequestPeers(_channel,
                                       _activity.FragmentManager.FindFragmentById <DeviceListFragment>(Resource.Id.frag_list));
                Log.Debug(WiFiDirectActivity.Tag, "P2P peers changed");
            }
            else if (WifiP2pManager.WifiP2pConnectionChangedAction.Equals(action))
            {
                if (_manager == null)
                {
                    return;
                }

                var networkInfo = (NetworkInfo)intent.GetParcelableExtra(WifiP2pManager.ExtraNetworkInfo);

                if (networkInfo.IsConnected)
                {
                    // we are connected with the other device, request connection
                    // info to find group owner IP

                    var fragment =
                        _activity.FragmentManager.FindFragmentById <DeviceDetailFragment>(Resource.Id.frag_detail);
                    _manager.RequestConnectionInfo(_channel, fragment);
                }
                else
                {
                    // It's a disconnect
                    _activity.ResetData();
                }
            }
            else if (WifiP2pManager.WifiP2pThisDeviceChangedAction.Equals(action))
            {
                var fragment =
                    _activity.FragmentManager.FindFragmentById <DeviceListFragment>(Resource.Id.frag_list);
                fragment.UpdateThisDevice((WifiP2pDevice)intent.GetParcelableExtra(WifiP2pManager.ExtraWifiP2pDevice));
            }
        }
Example #2
0
        public override void OnReceive(Context context, Intent intent)
        {
            string action = intent.Action;

            if (WifiP2pStateChangedAction.Equals(action))
            {
                // Determine if Wifi P2P mode is enabled or not, alert
                // the Activity.
                int state = intent.GetIntExtra(ExtraWifiState, -1);
                if (WifiP2pState.Enabled.Equals(state))
                {
                    MessagingCenter.Send("P2PShare", "WFDConnectError", "Wifi is on");
                    //activity.setIsWifiP2pEnabled(true);
                }
                else
                {
                    MessagingCenter.Send("P2PShare", "WFDConnectError", "Wifi is off");
                    //activity.setIsWifiP2pEnabled(false);
                }
            }
            else if (WifiP2pPeersChangedAction.Equals(action))
            {
                // The peer list has changed!
                Send.Devices.Clear();
                // Requesting Peers The result will be received via the PeerListener Class
                WifiDirectHandler.Manager.RequestPeers(WifiDirectHandler.Channel, new WifiDirectHandler.PeerListener());
            }
            else if (WifiP2pConnectionChangedAction.Equals(action))
            {
                // Connection state changed!
                manager.RequestConnectionInfo(channel, new ConnectionInfoListener());
            }
            else if (WifiP2pThisDeviceChangedAction.Equals(action))
            {
                /*DeviceListFragment fragment = (DeviceListFragment)activity.getFragmentManager()
                 *      .findFragmentById(R.id.fraglist);
                 * fragment.updateThisDevice((WifiP2pDevice)intent.getParcelableExtra(
                 *      WifiP2pManager.EXTRAWIFIP2PDEVICE));*/
            }
            //Toast.MakeText(context, "Received intent!", ToastLength.Short).Show();
        }
Example #3
0
        public override void OnReceive(Context context, Intent intent)
        {
            var action = intent.Action;

            if (WifiP2pManager.WifiP2pStateChangedAction.Equals(action))
            {
                // UI update to indicate wifi p2p status.
                var state = intent.GetIntExtra(WifiP2pManager.ExtraWifiState, -1);
                if (state == (int)WifiP2pState.Enabled)
                {
                    WiFiService.wifiService.RefreshStateChanged(true);
                }
                // Wifi Direct mode is enabled
                //_activity.IsWifiP2PEnabled = true;
                else
                {
                    WiFiService.wifiService.RefreshStateChanged(false);
                    //_activity.IsWifiP2PEnabled = false;
                    //_activity.ResetData();
                }
                //Log.Debug(WiFiDirectActivity.Tag, "P2P state changed - " + state);
            }
            else if (WifiP2pManager.WifiP2pPeersChangedAction.Equals(action))
            {
                // request available peers from the wifi p2p manager. This is an
                // asynchronous call and the calling activity is notified with a
                // callback on PeerListListener.onPeersAvailable()
                if (_manager != null)
                {
                    try
                    {
                        _manager.RequestPeers(_channel, new PeersListener());
                    }
                    catch (Exception ex)
                    {
                        string ss = ex.Message;
                    }
                }
                //Log.Debug(WiFiDirectActivity.Tag, "P2P peers changed");
            }
            else if (WifiP2pManager.WifiP2pConnectionChangedAction.Equals(action))
            {
                if (_manager == null)
                {
                    return;
                }

                var networkInfo = (NetworkInfo)intent.GetParcelableExtra(WifiP2pManager.ExtraNetworkInfo);

                if (networkInfo.IsConnected)
                {
                    // we are connected with the other device, request connection
                    // info to find group owner IP
                    _manager.RequestConnectionInfo(_channel, new ServerReceiveMessage());
                }
            }
            else if (WifiP2pManager.WifiP2pThisDeviceChangedAction.Equals(action))
            {
                int m = 0;
                //var fragment =
                //        _activity.FragmentManager.FindFragmentById<DeviceListFragment>(Resource.Id.frag_list);
                //fragment.UpdateThisDevice((WifiP2pDevice)intent.GetParcelableExtra(WifiP2pManager.ExtraWifiP2pDevice));
            }
        }
 /// <summary>
 /// Request for updated information about the current connection i.e. if a group has been formed, the group owner inet address and whether or not this device is the group owner.
 /// </summary>
 /// <remarks>Catch the results with the method <see cref="OnConnectionInfoAvailable(WifiP2pInfo)"/></remarks>
 protected void RequestConnectionInfo()
 {
     WifiP2pManager.RequestConnectionInfo(WifiP2pChannel, this);
 }