diff --git a/apps/Development/AndroidManifest.xml b/apps/Development/AndroidManifest.xml
index d932174d1..2379e0070 100644
--- a/apps/Development/AndroidManifest.xml
+++ b/apps/Development/AndroidManifest.xml
@@ -20,6 +20,7 @@
+
diff --git a/apps/Development/res/layout/connectivity.xml b/apps/Development/res/layout/connectivity.xml
index e5020d822..7c5c71419 100644
--- a/apps/Development/res/layout/connectivity.xml
+++ b/apps/Development/res/layout/connectivity.xml
@@ -42,6 +42,19 @@
android:layout_height="wrap_content"
android:text="@string/disable_wifi" />
+
+
+
+
Enable Wifi
Disable Wifi
+ Acquire Multicast Lock
+ Release Multicast Lock
Wifi on (ms):
Wifi off (ms):
Cycles done:
diff --git a/apps/Development/src/com/android/development/Connectivity.java b/apps/Development/src/com/android/development/Connectivity.java
index c454db6da..47bba601e 100644
--- a/apps/Development/src/com/android/development/Connectivity.java
+++ b/apps/Development/src/com/android/development/Connectivity.java
@@ -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);
+ }
}