diff options
author | Svetoslav Ganov <svetoslavganov@google.com> | 2016-07-26 18:23:01 -0700 |
---|---|---|
committer | Colin Cross <ccross@android.com> | 2016-11-14 18:34:40 -0800 |
commit | 6c3032f16bd97d8137dc90ec8dce47842a4a9c20 (patch) | |
tree | acda47bb0826675fadae31ae2752d83ec70c3a70 | |
parent | 31082a08245bfdbd9162483a2bfc0c4609061209 (diff) |
Add WiFi toggle prompts - framework
If permission review is enabled toggling WiFi on or off
results in a user prompt to collect a consent. This applies
only to legacy apps, i.e. ones that don't support runtime
permissions as they target SDK 22.
bug:28715749
Original-Change-Id: I020601e208c0736005bcabc7b7b77b96eee45b03
Change-Id: I3fdc2b02abecaf3166614b0cb9fac3553cb7ab88
(cherry picked from commit d3663c04a721e0848dd3e9179c84ba585d91839d)
-rw-r--r-- | cmds/svc/src/com/android/commands/svc/WifiCommand.java | 2 | ||||
-rw-r--r-- | wifi/java/android/net/wifi/IWifiManager.aidl | 2 | ||||
-rw-r--r-- | wifi/java/android/net/wifi/WifiManager.java | 25 |
3 files changed, 26 insertions, 3 deletions
diff --git a/cmds/svc/src/com/android/commands/svc/WifiCommand.java b/cmds/svc/src/com/android/commands/svc/WifiCommand.java index 94214ff9694f..633dd9787cb1 100644 --- a/cmds/svc/src/com/android/commands/svc/WifiCommand.java +++ b/cmds/svc/src/com/android/commands/svc/WifiCommand.java @@ -52,7 +52,7 @@ public class WifiCommand extends Svc.Command { IWifiManager wifiMgr = IWifiManager.Stub.asInterface(ServiceManager.getService(Context.WIFI_SERVICE)); try { - wifiMgr.setWifiEnabled(flag); + wifiMgr.setWifiEnabled("com.android.shell", flag); } catch (RemoteException e) { System.err.println("Wi-Fi operation failed: " + e); diff --git a/wifi/java/android/net/wifi/IWifiManager.aidl b/wifi/java/android/net/wifi/IWifiManager.aidl index f1ec16aa4bd2..bc382848a59b 100644 --- a/wifi/java/android/net/wifi/IWifiManager.aidl +++ b/wifi/java/android/net/wifi/IWifiManager.aidl @@ -96,7 +96,7 @@ interface IWifiManager WifiInfo getConnectionInfo(); - boolean setWifiEnabled(boolean enable); + boolean setWifiEnabled(String packageName, boolean enable); int getWifiEnabledState(); diff --git a/wifi/java/android/net/wifi/WifiManager.java b/wifi/java/android/net/wifi/WifiManager.java index ecb279ced700..98a6ca58b1c3 100644 --- a/wifi/java/android/net/wifi/WifiManager.java +++ b/wifi/java/android/net/wifi/WifiManager.java @@ -19,6 +19,7 @@ package android.net.wifi; import android.annotation.SdkConstant; import android.annotation.SdkConstant.SdkConstantType; import android.annotation.SystemApi; +import android.bluetooth.BluetoothAdapter; import android.content.Context; import android.net.ConnectivityManager; import android.net.DhcpInfo; @@ -564,6 +565,28 @@ public class WifiManager { public static final String ACTION_PICK_WIFI_NETWORK = "android.net.wifi.PICK_WIFI_NETWORK"; /** + * Activity Action: Show UI to get user approval to enable WiFi. + * <p>Input: {@link android.content.Intent#EXTRA_PACKAGE_NAME} string extra with + * the name of the app requesting the action. + * <p>Output: Nothing. + * + * @hide + */ + @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION) + public static final String ACTION_REQUEST_ENABLE = "android.net.wifi.action.REQUEST_ENABLE"; + + /** + * Activity Action: Show UI to get user approval to disable WiFi. + * <p>Input: {@link android.content.Intent#EXTRA_PACKAGE_NAME} string extra with + * the name of the app requesting the action. + * <p>Output: Nothing. + * + * @hide + */ + @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION) + public static final String ACTION_REQUEST_DISABLE = "android.net.wifi.action.REQUEST_DISABLE"; + + /** * Internally used Wi-Fi lock mode representing the case were no locks are held. * @hide */ @@ -1462,7 +1485,7 @@ public class WifiManager { */ public boolean setWifiEnabled(boolean enabled) { try { - return mService.setWifiEnabled(enabled); + return mService.setWifiEnabled(mContext.getOpPackageName(), enabled); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } |