Example #1
0
        public override void OnReceive(Context context, Intent intent)
        {
            string action = intent.Action;

            if (WifiP2pManager.WifiP2pStateChangedAction == action)
            {
                // prüfen ob wifi aktiviert ist
                int state = intent.GetIntExtra(WifiP2pManager.ExtraWifiState, -1);
                if (state == (int)WifiP2pState.Enabled)
                {
                    Toast.MakeText(context, "Wifi Direct is enabled", ToastLength.Short).Show();
                }
                else
                {
                    Toast.MakeText(context, "Wifi Direct is not enabled", ToastLength.Short).Show();
                }
            }
            else if (WifiP2pManager.WifiP2pPeersChangedAction == action)
            {
                // wird bei Wifip2pmanager.requestpeers() aufgerufen
                if (mManager != null)
                {
                    mManager.RequestPeers(mChannel, mActivity);
                }
            }
            else if (WifiP2pManager.WifiP2pConnectionChangedAction == action)
            {
                // antwort bei connect oder disconnect
            }
            else if (WifiP2pManager.WifiP2pThisDeviceChangedAction == action)
            {
                // antwort bei connection änderungen
            }
        }
        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 #3
0
        public override void OnReceive(Context context, Intent intent)
        {
            Log.Info("BroadcastReceiver", "P2PBroadcastReceiver got " + 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;
                    Toast.MakeText(context, "WiFiDirect IS enabled", ToastLength.Short).Show();
                }
                else
                {
                    Toast.MakeText(context, "WiFiDirect is not enabled", ToastLength.Short).Show();
                }
                Log.Debug(MainActivity.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, _listener);
                Log.Debug(MainActivity.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();
                }
            }
        }
Example #4
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 an updated peer list explicitly.
 /// </summary>
 /// <remarks>Can return an empty list if no peers have been discovered.
 /// Catch the results with the method <see cref="OnPeersAvailable(WifiP2pDeviceList)"/></remarks>
 protected void RequestUpdatedPeerList()
 {
     WifiP2pManager.RequestPeers(WifiP2pChannel, this);
 }