diff --git a/res/values/strings.xml b/res/values/strings.xml
index c266e0b5a2b..498f712719b 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1207,6 +1207,8 @@
Searching\u2026
No nearby wireless displays were found.
+
+ This user is not allowed to configure wireless networks.
Paired displays
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index 9e0f8d71e41..10a153d061d 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -17,6 +17,7 @@
package com.android.settings.wifi;
import static android.net.wifi.WifiConfiguration.INVALID_NETWORK_ID;
+import static android.os.UserManager.DISALLOW_CONFIG_WIFI;
import android.app.ActionBar;
import android.app.Activity;
@@ -41,6 +42,7 @@ import android.net.wifi.WpsInfo;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
+import android.os.UserManager;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceScreen;
@@ -126,6 +128,8 @@ public class WifiSettings extends SettingsPreferenceFragment
private boolean mP2pSupported;
+ private UserManager mUserManager;
+
private WifiEnabler mWifiEnabler;
// An access point being editted is stored here.
private AccessPoint mSelectedAccessPoint;
@@ -276,6 +280,7 @@ public class WifiSettings extends SettingsPreferenceFragment
mP2pSupported = getPackageManager().hasSystemFeature(PackageManager.FEATURE_WIFI_DIRECT);
mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
+ mUserManager = (UserManager) getSystemService(Context.USER_SERVICE);
mConnectListener = new WifiManager.ActionListener() {
@Override
@@ -431,6 +436,9 @@ public class WifiSettings extends SettingsPreferenceFragment
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
+ // If the user is not allowed to configure wifi, do not show the menu.
+ if (mUserManager.hasUserRestriction(DISALLOW_CONFIG_WIFI)) return;
+
final boolean wifiIsEnabled = mWifiManager.isWifiEnabled();
if (mSetupWizardMode) {
// FIXME: add setIcon() when graphics are available
@@ -486,6 +494,9 @@ public class WifiSettings extends SettingsPreferenceFragment
@Override
public boolean onOptionsItemSelected(MenuItem item) {
+ // If the user is not allowed to configure wifi, do not handle menu selections.
+ if (mUserManager.hasUserRestriction(DISALLOW_CONFIG_WIFI)) return false;
+
switch (item.getItemId()) {
case MENU_ID_WPS_PBC:
showDialog(WPS_PBC_DIALOG_ID);
@@ -704,6 +715,10 @@ public class WifiSettings extends SettingsPreferenceFragment
// Safeguard from some delayed event handling
if (getActivity() == null) return;
+ if (mUserManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_WIFI)) {
+ addMessagePreference(R.string.wifi_display_settings_empty_list_user_restricted);
+ return;
+ }
final int wifiState = mWifiManager.getWifiState();
switch (wifiState) {