am e91a3f52: Merge "Add a hidden API to toggle airplane mode." into klp-dev

* commit 'e91a3f5229405b39a3ba59aa0a3e44527eef063e':
  Add a hidden API to toggle airplane mode.
This commit is contained in:
Yuhao Zheng
2013-09-10 10:13:22 -07:00
committed by Android Git Automerger
3 changed files with 33 additions and 0 deletions

View File

@@ -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) {
}
}
}

View File

@@ -156,4 +156,6 @@ interface IConnectivityManager
LinkQualityInfo[] getAllLinkQualityInfo();
void setProvisioningNotificationVisible(boolean visible, int networkType, in String extraInfo, in String url);
void setAirplaneMode(boolean enable);
}

View File

@@ -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);