summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYuhao Zheng <yuhaozheng@google.com>2013-09-10 17:12:00 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-09-10 17:12:00 +0000
commite91a3f5229405b39a3ba59aa0a3e44527eef063e (patch)
treeda87c48e7cf83cefdba74388ed02042300d8ec87
parent9720d5e11c5175503b383bd903c68d2408d2bb80 (diff)
parent5cd1a0e8d77972ad6cee2625a7e21082932042c2 (diff)
downloadframeworks_base-e91a3f5229405b39a3ba59aa0a3e44527eef063e.zip
frameworks_base-e91a3f5229405b39a3ba59aa0a3e44527eef063e.tar.gz
frameworks_base-e91a3f5229405b39a3ba59aa0a3e44527eef063e.tar.bz2
Merge "Add a hidden API to toggle airplane mode." into klp-dev
-rw-r--r--core/java/android/net/ConnectivityManager.java16
-rw-r--r--core/java/android/net/IConnectivityManager.aidl2
-rw-r--r--services/java/com/android/server/ConnectivityService.java15
3 files changed, 33 insertions, 0 deletions
diff --git a/core/java/android/net/ConnectivityManager.java b/core/java/android/net/ConnectivityManager.java
index 4cf38b6..c78a973 100644
--- a/core/java/android/net/ConnectivityManager.java
+++ b/core/java/android/net/ConnectivityManager.java
@@ -1476,4 +1476,20 @@ public class ConnectivityManager {
} catch (RemoteException e) {
}
}
+
+ /**
+ * Set the value for enabling/disabling airplane mode
+ *
+ * @param enable whether to enable airplane mode or not
+ *
+ * <p>This method requires the call to hold the permission
+ * {@link android.Manifest.permission#CONNECTIVITY_INTERNAL}.
+ * @hide
+ */
+ public void setAirplaneMode(boolean enable) {
+ try {
+ mService.setAirplaneMode(enable);
+ } catch (RemoteException e) {
+ }
+ }
}
diff --git a/core/java/android/net/IConnectivityManager.aidl b/core/java/android/net/IConnectivityManager.aidl
index a6f10ec..b3fa79f 100644
--- a/core/java/android/net/IConnectivityManager.aidl
+++ b/core/java/android/net/IConnectivityManager.aidl
@@ -156,4 +156,6 @@ interface IConnectivityManager
LinkQualityInfo[] getAllLinkQualityInfo();
void setProvisioningNotificationVisible(boolean visible, int networkType, in String extraInfo, in String url);
+
+ void setAirplaneMode(boolean enable);
}
diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java
index 02a78de..4e3faca 100644
--- a/services/java/com/android/server/ConnectivityService.java
+++ b/services/java/com/android/server/ConnectivityService.java
@@ -4681,6 +4681,21 @@ public class ConnectivityService extends IConnectivityManager.Stub {
setProvNotificationVisible(visible, networkType, extraInfo, url);
}
+ @Override
+ public void setAirplaneMode(boolean enable) {
+ enforceConnectivityInternalPermission();
+ final ContentResolver cr = mContext.getContentResolver();
+ Settings.Global.putInt(cr, Settings.Global.AIRPLANE_MODE_ON, enable ? 1 : 0);
+ Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
+ intent.putExtra("state", enable);
+ final long ident = Binder.clearCallingIdentity();
+ try {
+ mContext.sendBroadcast(intent);
+ } finally {
+ Binder.restoreCallingIdentity(ident);
+ }
+ }
+
private void onUserStart(int userId) {
synchronized(mVpns) {
Vpn userVpn = mVpns.get(userId);