Add a hidden API to toggle airplane mode.
Added a hidden API under ConnectivityManager to toggle airplane mode. This may be a temp solution for b/10653570. bug:10653570 Change-Id: I0b2b42230073289eb8dc6891317d62b84e26c133
This commit is contained in:
@@ -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) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -156,4 +156,6 @@ interface IConnectivityManager
|
||||
LinkQualityInfo[] getAllLinkQualityInfo();
|
||||
|
||||
void setProvisioningNotificationVisible(boolean visible, int networkType, in String extraInfo, in String url);
|
||||
|
||||
void setAirplaneMode(boolean enable);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user