WiFiP2pEventHandler.java 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package de.tudarmstadt.informatik.hostage.sync.wifi_direct;
  2. import android.app.Activity;
  3. import android.content.Context;
  4. import android.content.IntentFilter;
  5. import android.net.wifi.p2p.WifiP2pDevice;
  6. import android.net.wifi.p2p.WifiP2pManager;
  7. /**
  8. * Created by Julien on 07.01.2015.
  9. */
  10. public class WiFiP2pEventHandler implements WifiP2pManager.ChannelListener {
  11. public interface WiFiP2pEventListener extends WiFiP2pBroadcastReceiver.WiFiP2pBroadcastListener{
  12. }
  13. private WifiP2pManager manager;
  14. private boolean retryChannel = false;
  15. private final IntentFilter intentFilter = new IntentFilter();
  16. private WifiP2pManager.Channel channel;
  17. private WiFiP2pBroadcastReceiver receiver = null;
  18. private WiFiP2pEventListener eventListener;
  19. private Activity activity;
  20. public WiFiP2pEventHandler(Activity activity, WiFiP2pEventListener listener){
  21. this.eventListener = listener;
  22. this.activity = activity;
  23. intentFilter.addAction(WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION);
  24. intentFilter.addAction(WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION);
  25. intentFilter.addAction(WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION);
  26. intentFilter.addAction(WifiP2pManager.WIFI_P2P_THIS_DEVICE_CHANGED_ACTION);
  27. manager = (WifiP2pManager) activity.getSystemService(Context.WIFI_P2P_SERVICE);
  28. channel = manager.initialize(activity, activity.getMainLooper(), this);
  29. //receiver = new WiFiP2pBroadcastReceiver(manager, channel, this.eventListener);
  30. //activity.registerReceiver(receiver, intentFilter);
  31. }
  32. public void onResume() {
  33. if (receiver == null){
  34. receiver = new WiFiP2pBroadcastReceiver(manager, channel, this.eventListener);
  35. activity.registerReceiver(receiver, intentFilter);
  36. }
  37. }
  38. public void onPause() {
  39. if (receiver != null) {
  40. activity.unregisterReceiver(receiver);
  41. receiver = null;
  42. }
  43. }
  44. @Override
  45. public void onChannelDisconnected() {
  46. // we will try once more
  47. if (manager != null && !retryChannel) {
  48. retryChannel = true;
  49. manager.initialize(this.activity, this.activity.getMainLooper(), this);
  50. } else {
  51. }
  52. }
  53. public void connect(WifiP2pDevice device){
  54. if (this.receiver != null)
  55. this.receiver.connect(device);
  56. }
  57. public void disconnect() {
  58. if (this.receiver != null)
  59. this.receiver.disconnect();
  60. }
  61. public void discoverDevices(){
  62. if (this.receiver != null)
  63. this.receiver.discoverDevices();
  64. }
  65. }