Control WifiManager.MulticastLock from connectivity dev app

Add buttons to acquire and release the WifiManager.MulticastLock.

Change-Id: I28fd7743cb3adfeec055b6bcce2c8128b15cf2d3
This commit is contained in:
Paul Jensen
2016-04-01 13:28:24 -04:00
committed by Lorenzo Colitti
parent 27d0c3e484
commit 0991017843
4 changed files with 38 additions and 1 deletions

View File

@@ -1,4 +1,4 @@
/* //device/apps/Settings/src/com/android/settings/Keyguard.java
/**
**
** Copyright 2006, The Android Open Source Project
**
@@ -132,6 +132,7 @@ public class Connectivity extends Activity {
private String mTdlsAddr = null;
private WifiManager mWm;
private WifiManager.MulticastLock mWml;
private PowerManager mPm;
private ConnectivityManager mCm;
private INetworkManagementService mNetd;
@@ -404,6 +405,7 @@ public class Connectivity extends Activity {
setContentView(R.layout.connectivity);
mWm = (WifiManager)getSystemService(Context.WIFI_SERVICE);
mWml = mWm.createMulticastLock(TAG);
mPm = (PowerManager)getSystemService(Context.POWER_SERVICE);
mCm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
IBinder b = ServiceManager.getService(Context.NETWORKMANAGEMENT_SERVICE);
@@ -411,6 +413,9 @@ public class Connectivity extends Activity {
findViewById(R.id.enableWifi).setOnClickListener(mClickListener);
findViewById(R.id.disableWifi).setOnClickListener(mClickListener);
findViewById(R.id.acquireWifiMulticastLock).setOnClickListener(mClickListener);
findViewById(R.id.releaseWifiMulticastLock).setOnClickListener(mClickListener);
findViewById(R.id.releaseWifiMulticastLock).setEnabled(false);
findViewById(R.id.startDelayedCycle).setOnClickListener(mClickListener);
findViewById(R.id.stopDelayedCycle).setOnClickListener(mClickListener);
@@ -481,6 +486,7 @@ public class Connectivity extends Activity {
mCm.unregisterNetworkCallback(mCallback);
mCallback = null;
unregisterReceiver(mReceiver);
mWml.release();
}
@Override
@@ -498,6 +504,10 @@ public class Connectivity extends Activity {
case R.id.disableWifi:
mWm.setWifiEnabled(false);
break;
case R.id.acquireWifiMulticastLock:
case R.id.releaseWifiMulticastLock:
onWifiMulticastLock(v.getId() == R.id.acquireWifiMulticastLock);
break;
case R.id.startDelayedCycle:
onStartDelayedCycle();
break;
@@ -784,4 +794,15 @@ public class Connectivity extends Activity {
};
requestThread.start();
}
private void onWifiMulticastLock(boolean enable) {
Log.d(TAG, (enable ? "Acquiring" : "Releasing") + " wifi multicast lock");
if (enable) {
mWml.acquire();
} else {
mWml.release();
}
findViewById(R.id.acquireWifiMulticastLock).setEnabled(!enable);
findViewById(R.id.releaseWifiMulticastLock).setEnabled(enable);
}
}