P2PBroadcastReceiver.java 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package de.tudarmstadt.informatik.hostage.sync.p2p;
  2. import android.content.BroadcastReceiver;
  3. import android.content.Context;
  4. import android.content.Intent;
  5. import android.net.NetworkInfo;
  6. import android.net.wifi.p2p.WifiP2pDevice;
  7. import android.net.wifi.p2p.WifiP2pManager;
  8. public class P2PBroadcastReceiver extends BroadcastReceiver {
  9. private WifiP2pManager mManager;
  10. private WifiP2pManager.Channel mChannel;
  11. private P2PSyncActivity mActivity;
  12. public P2PBroadcastReceiver(WifiP2pManager manager, WifiP2pManager.Channel channel, P2PSyncActivity activity){
  13. this.mManager = manager;
  14. this.mChannel = channel;
  15. this.mActivity = activity;
  16. }
  17. @Override
  18. public void onReceive(Context context, Intent intent) {
  19. String action = intent.getAction();
  20. if(WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION.equals(action)){
  21. int state = intent.getIntExtra(WifiP2pManager.EXTRA_WIFI_STATE, -1);
  22. if (state == WifiP2pManager.WIFI_P2P_STATE_ENABLED) {
  23. mActivity.setWifiDirectAvailable();
  24. } else {
  25. mActivity.setWifiDirectNotAvailable();
  26. }
  27. } else if(WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION.equals(action)){
  28. mManager.requestPeers(mChannel, mActivity);
  29. } else if(WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION.equals(action)){
  30. NetworkInfo networkInfo = (NetworkInfo) intent.getParcelableExtra(WifiP2pManager.EXTRA_NETWORK_INFO);
  31. if(networkInfo.isConnected()){
  32. mManager.requestConnectionInfo(mChannel, mActivity);
  33. }
  34. } else if(WifiP2pManager.WIFI_P2P_THIS_DEVICE_CHANGED_ACTION.equals(action)){
  35. WifiP2pDevice device = (WifiP2pDevice) intent.getParcelableExtra(WifiP2pManager.EXTRA_WIFI_P2P_DEVICE);
  36. mActivity.updateThisDevice(device);
  37. }
  38. }
  39. }