1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- package de.tudarmstadt.informatik.hostage.sync.wifi_direct;
- import android.app.Activity;
- import android.content.Context;
- import android.content.IntentFilter;
- import android.net.wifi.p2p.WifiP2pDevice;
- import android.net.wifi.p2p.WifiP2pManager;
- /**
- * Created by Julien on 07.01.2015.
- */
- public class WiFiP2pEventHandler implements WifiP2pManager.ChannelListener {
- public interface WiFiP2pEventListener extends WiFiP2pBroadcastReceiver.WiFiP2pBroadcastListener{
- }
- private WifiP2pManager manager;
- private boolean retryChannel = false;
- private final IntentFilter intentFilter = new IntentFilter();
- private WifiP2pManager.Channel channel;
- private WiFiP2pBroadcastReceiver receiver = null;
- private WiFiP2pEventListener eventListener;
- private Activity activity;
- public WiFiP2pEventHandler(Activity activity, WiFiP2pEventListener listener){
- this.eventListener = listener;
- this.activity = activity;
- intentFilter.addAction(WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION);
- intentFilter.addAction(WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION);
- intentFilter.addAction(WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION);
- intentFilter.addAction(WifiP2pManager.WIFI_P2P_THIS_DEVICE_CHANGED_ACTION);
- manager = (WifiP2pManager) activity.getSystemService(Context.WIFI_P2P_SERVICE);
- channel = manager.initialize(activity, activity.getMainLooper(), this);
- //receiver = new WiFiP2pBroadcastReceiver(manager, channel, this.eventListener);
- //activity.registerReceiver(receiver, intentFilter);
- }
- public void onResume() {
- if (receiver == null){
- receiver = new WiFiP2pBroadcastReceiver(manager, channel, this.eventListener);
- activity.registerReceiver(receiver, intentFilter);
- }
- }
- public void onPause() {
- if (receiver != null) {
- activity.unregisterReceiver(receiver);
- receiver = null;
- }
- }
- @Override
- public void onChannelDisconnected() {
- // we will try once more
- if (manager != null && !retryChannel) {
- retryChannel = true;
- manager.initialize(this.activity, this.activity.getMainLooper(), this);
- } else {
- }
- }
- public void connect(WifiP2pDevice device){
- if (this.receiver != null)
- this.receiver.connect(device);
- }
- public void disconnect() {
- if (this.receiver != null)
- this.receiver.disconnect();
- }
- public void discoverDevices(){
- if (this.receiver != null)
- this.receiver.discoverDevices();
- }
- }
|