Loading api/current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -5231,6 +5231,7 @@ package android.app.admin { method public void setProfileEnabled(android.content.ComponentName); method public void setRestrictionsProvider(android.content.ComponentName, android.content.ComponentName); method public void setSecureSetting(android.content.ComponentName, java.lang.String, java.lang.String); method public void setRecommendedGlobalProxy(android.content.ComponentName, android.net.ProxyInfo); method public int setStorageEncryption(android.content.ComponentName, boolean); method public void wipeData(int); field public static final java.lang.String ACTION_ADD_DEVICE_ADMIN = "android.app.action.ADD_DEVICE_ADMIN"; core/java/android/app/admin/DevicePolicyManager.java +27 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import android.content.pm.ActivityInfo; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.RestrictionsManager; import android.net.ProxyInfo; import android.os.Bundle; import android.os.Handler; import android.os.Process; Loading Loading @@ -1275,6 +1276,32 @@ public class DevicePolicyManager { return null; } /** * Set a network-independent global HTTP proxy. This is not normally what you want * for typical HTTP proxies - they are generally network dependent. However if you're * doing something unusual like general internal filtering this may be useful. On * a private network where the proxy is not accessible, you may break HTTP using this. * * <p>This method requires the caller to be the device owner. * * <p>This proxy is only a recommendation and it is possible that some apps will ignore it. * @see ProxyInfo * * @param admin Which {@link DeviceAdminReceiver} this request is associated * with. * @param proxyInfo The a {@link ProxyInfo} object defining the new global * HTTP proxy. A {@code null} value will clear the global HTTP proxy. */ public void setRecommendedGlobalProxy(ComponentName admin, ProxyInfo proxyInfo) { if (mService != null) { try { mService.setRecommendedGlobalProxy(admin, proxyInfo); } catch (RemoteException e) { Log.w(TAG, "Failed talking with device policy service", e); } } } /** * Returns the component name setting the global proxy. * @return ComponentName object of the device admin that set the global proxy, or Loading core/java/android/app/admin/IDevicePolicyManager.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ package android.app.admin; import android.content.ComponentName; import android.content.Intent; import android.content.IntentFilter; import android.net.ProxyInfo; import android.os.Bundle; import android.os.RemoteCallback; import android.os.UserHandle; Loading Loading @@ -78,6 +79,7 @@ interface IDevicePolicyManager { ComponentName setGlobalProxy(in ComponentName admin, String proxySpec, String exclusionList, int userHandle); ComponentName getGlobalProxyAdmin(int userHandle); void setRecommendedGlobalProxy(in ComponentName admin, in ProxyInfo proxyInfo); int setStorageEncryption(in ComponentName who, boolean encrypt, int userHandle); boolean getStorageEncryption(in ComponentName who, int userHandle); Loading services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +15 −0 Original line number Diff line number Diff line Loading @@ -51,6 +51,7 @@ import android.content.pm.IPackageManager; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.pm.UserInfo; import android.net.ConnectivityManager; import android.net.ProxyInfo; import android.os.Binder; import android.os.Bundle; Loading Loading @@ -2722,6 +2723,20 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { return null; } public void setRecommendedGlobalProxy(ComponentName who, ProxyInfo proxyInfo) { synchronized (this) { getActiveAdminForCallerLocked(who, DeviceAdminInfo.USES_POLICY_DEVICE_OWNER); } long token = Binder.clearCallingIdentity(); try { ConnectivityManager connectivityManager = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE); connectivityManager.setGlobalProxy(proxyInfo); } finally { Binder.restoreCallingIdentity(token); } } private void resetGlobalProxyLocked(DevicePolicyData policy) { final int N = policy.mAdminList.size(); for (int i = 0; i < N; i++) { Loading Loading
api/current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -5231,6 +5231,7 @@ package android.app.admin { method public void setProfileEnabled(android.content.ComponentName); method public void setRestrictionsProvider(android.content.ComponentName, android.content.ComponentName); method public void setSecureSetting(android.content.ComponentName, java.lang.String, java.lang.String); method public void setRecommendedGlobalProxy(android.content.ComponentName, android.net.ProxyInfo); method public int setStorageEncryption(android.content.ComponentName, boolean); method public void wipeData(int); field public static final java.lang.String ACTION_ADD_DEVICE_ADMIN = "android.app.action.ADD_DEVICE_ADMIN";
core/java/android/app/admin/DevicePolicyManager.java +27 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import android.content.pm.ActivityInfo; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.RestrictionsManager; import android.net.ProxyInfo; import android.os.Bundle; import android.os.Handler; import android.os.Process; Loading Loading @@ -1275,6 +1276,32 @@ public class DevicePolicyManager { return null; } /** * Set a network-independent global HTTP proxy. This is not normally what you want * for typical HTTP proxies - they are generally network dependent. However if you're * doing something unusual like general internal filtering this may be useful. On * a private network where the proxy is not accessible, you may break HTTP using this. * * <p>This method requires the caller to be the device owner. * * <p>This proxy is only a recommendation and it is possible that some apps will ignore it. * @see ProxyInfo * * @param admin Which {@link DeviceAdminReceiver} this request is associated * with. * @param proxyInfo The a {@link ProxyInfo} object defining the new global * HTTP proxy. A {@code null} value will clear the global HTTP proxy. */ public void setRecommendedGlobalProxy(ComponentName admin, ProxyInfo proxyInfo) { if (mService != null) { try { mService.setRecommendedGlobalProxy(admin, proxyInfo); } catch (RemoteException e) { Log.w(TAG, "Failed talking with device policy service", e); } } } /** * Returns the component name setting the global proxy. * @return ComponentName object of the device admin that set the global proxy, or Loading
core/java/android/app/admin/IDevicePolicyManager.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ package android.app.admin; import android.content.ComponentName; import android.content.Intent; import android.content.IntentFilter; import android.net.ProxyInfo; import android.os.Bundle; import android.os.RemoteCallback; import android.os.UserHandle; Loading Loading @@ -78,6 +79,7 @@ interface IDevicePolicyManager { ComponentName setGlobalProxy(in ComponentName admin, String proxySpec, String exclusionList, int userHandle); ComponentName getGlobalProxyAdmin(int userHandle); void setRecommendedGlobalProxy(in ComponentName admin, in ProxyInfo proxyInfo); int setStorageEncryption(in ComponentName who, boolean encrypt, int userHandle); boolean getStorageEncryption(in ComponentName who, int userHandle); Loading
services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +15 −0 Original line number Diff line number Diff line Loading @@ -51,6 +51,7 @@ import android.content.pm.IPackageManager; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.pm.UserInfo; import android.net.ConnectivityManager; import android.net.ProxyInfo; import android.os.Binder; import android.os.Bundle; Loading Loading @@ -2722,6 +2723,20 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { return null; } public void setRecommendedGlobalProxy(ComponentName who, ProxyInfo proxyInfo) { synchronized (this) { getActiveAdminForCallerLocked(who, DeviceAdminInfo.USES_POLICY_DEVICE_OWNER); } long token = Binder.clearCallingIdentity(); try { ConnectivityManager connectivityManager = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE); connectivityManager.setGlobalProxy(proxyInfo); } finally { Binder.restoreCallingIdentity(token); } } private void resetGlobalProxyLocked(DevicePolicyData policy) { final int N = policy.mAdminList.size(); for (int i = 0; i < N; i++) { Loading