WiFiP2pEventHandler.java 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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. }
  30. public void onResume() {
  31. receiver = new WiFiP2pBroadcastReceiver(manager, channel, this.eventListener);
  32. activity.registerReceiver(receiver, intentFilter);
  33. }
  34. public void onPause() {
  35. activity.unregisterReceiver(receiver);
  36. }
  37. @Override
  38. public void onChannelDisconnected() {
  39. // we will try once more
  40. if (manager != null && !retryChannel) {
  41. retryChannel = true;
  42. manager.initialize(this.activity, this.activity.getMainLooper(), this);
  43. } else {
  44. }
  45. }
  46. public void connect(WifiP2pDevice device){
  47. this.receiver.connect(device);
  48. }
  49. public void disconnect() {
  50. this.receiver.disconnect();
  51. }
  52. public void discoverDevices(){
  53. this.receiver.discoverDevices();
  54. }
  55. }