Loading core/api/current.txt +7 −0 Original line number Diff line number Diff line Loading @@ -7134,6 +7134,8 @@ package android.app.admin { method public int getMaximumFailedPasswordsForWipe(@Nullable android.content.ComponentName); method public long getMaximumTimeToLock(@Nullable android.content.ComponentName); method @NonNull public java.util.List<java.lang.String> getMeteredDataDisabledPackages(@NonNull android.content.ComponentName); method public int getNearbyAppStreamingPolicy(); method public int getNearbyNotificationStreamingPolicy(); method @Deprecated @ColorInt public int getOrganizationColor(@NonNull android.content.ComponentName); method @Nullable public CharSequence getOrganizationName(@NonNull android.content.ComponentName); method public java.util.List<android.telephony.data.ApnSetting> getOverrideApns(@NonNull android.content.ComponentName); Loading Loading @@ -7277,6 +7279,8 @@ package android.app.admin { method public void setMaximumFailedPasswordsForWipe(@NonNull android.content.ComponentName, int); method public void setMaximumTimeToLock(@NonNull android.content.ComponentName, long); method @NonNull public java.util.List<java.lang.String> setMeteredDataDisabledPackages(@NonNull android.content.ComponentName, @NonNull java.util.List<java.lang.String>); method public void setNearbyAppStreamingPolicy(int); method public void setNearbyNotificationStreamingPolicy(int); method public void setNetworkLoggingEnabled(@Nullable android.content.ComponentName, boolean); method @Deprecated public void setOrganizationColor(@NonNull android.content.ComponentName, int); method public void setOrganizationId(@NonNull String); Loading Loading @@ -7445,6 +7449,9 @@ package android.app.admin { field public static final int LOCK_TASK_FEATURE_SYSTEM_INFO = 1; // 0x1 field public static final int MAKE_USER_EPHEMERAL = 2; // 0x2 field public static final String MIME_TYPE_PROVISIONING_NFC = "application/com.android.managedprovisioning"; field public static final int NEARBY_STREAMING_DISABLED = 0; // 0x0 field public static final int NEARBY_STREAMING_ENABLED = 1; // 0x1 field public static final int NEARBY_STREAMING_SAME_MANAGED_ACCOUNT_ONLY = 2; // 0x2 field public static final int OPERATION_SAFETY_REASON_DRIVING_DISTRACTION = 1; // 0x1 field public static final int PASSWORD_COMPLEXITY_HIGH = 327680; // 0x50000 field public static final int PASSWORD_COMPLEXITY_LOW = 65536; // 0x10000 core/java/android/app/admin/DevicePolicyManager.java +94 −0 Original line number Diff line number Diff line Loading @@ -1675,6 +1675,29 @@ public class DevicePolicyManager { }) public @interface PasswordComplexity {} /** Indicates that nearby streaming is disabled. */ public static final int NEARBY_STREAMING_DISABLED = 0; /** Indicates that nearby streaming is enabled. */ public static final int NEARBY_STREAMING_ENABLED = 1; /** * Indicates that nearby streaming is enabled only to devices offering a comparable level of * security, with the same authenticated managed account. */ public static final int NEARBY_STREAMING_SAME_MANAGED_ACCOUNT_ONLY = 2; /** * @hide */ @Retention(RetentionPolicy.SOURCE) @IntDef(prefix = {"NEARBY_STREAMING_"}, value = { NEARBY_STREAMING_DISABLED, NEARBY_STREAMING_ENABLED, NEARBY_STREAMING_SAME_MANAGED_ACCOUNT_ONLY, }) public @interface NearbyStreamingPolicy {} /** * Activity action: have the user enter a new password for the parent profile. * If the intent is launched from within a managed profile, this will trigger Loading Loading @@ -7162,6 +7185,77 @@ public class DevicePolicyManager { return false; } /** * Called by a device/profile owner to set nearby notification streaming policy. Notification * streaming is sending notification data from pre-installed apps to nearby devices. * * @param policy One of the {@code NearbyStreamingPolicy} constants. * @throws SecurityException if caller is not a device or profile owner */ public void setNearbyNotificationStreamingPolicy(@NearbyStreamingPolicy int policy) { throwIfParentInstance("setNearbyNotificationStreamingPolicy"); if (mService == null) { return; } try { mService.setNearbyNotificationStreamingPolicy(policy); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * Returns the current runtime nearby notification streaming policy set by the device or profile * owner. The default is {@link #NEARBY_STREAMING_DISABLED}. */ public @NearbyStreamingPolicy int getNearbyNotificationStreamingPolicy() { throwIfParentInstance("getNearbyNotificationStreamingPolicy"); if (mService == null) { return NEARBY_STREAMING_DISABLED; } try { return mService.getNearbyNotificationStreamingPolicy(); } catch (RemoteException re) { throw re.rethrowFromSystemServer(); } } /** * Called by a device/profile owner to set nearby app streaming policy. App streaming is when * the device starts an app on a virtual display and sends a video stream of the app to nearby * devices. * * @param policy One of the {@code NearbyStreamingPolicy} constants. * @throws SecurityException if caller is not a device or profile owner. */ public void setNearbyAppStreamingPolicy(@NearbyStreamingPolicy int policy) { throwIfParentInstance("setNearbyAppStreamingPolicy"); if (mService == null) { return; } try { mService.setNearbyAppStreamingPolicy(policy); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * Returns the current runtime nearby app streaming policy set by the device or profile owner. * The default is {@link #NEARBY_STREAMING_DISABLED}. */ public @NearbyStreamingPolicy int getNearbyAppStreamingPolicy() { throwIfParentInstance("getNearbyAppStreamingPolicy"); if (mService == null) { return NEARBY_STREAMING_DISABLED; } try { return mService.getNearbyAppStreamingPolicy(); } catch (RemoteException re) { throw re.rethrowFromSystemServer(); } } /** * Called by a device owner, or alternatively a profile owner from Android 8.0 (API level 26) or * higher, to set whether auto time is required. If auto time is required, no user will be able Loading core/java/android/app/admin/IDevicePolicyManager.aidl +6 −0 Original line number Diff line number Diff line Loading @@ -132,6 +132,12 @@ interface IDevicePolicyManager { void setScreenCaptureDisabled(in ComponentName who, boolean disabled, boolean parent); boolean getScreenCaptureDisabled(in ComponentName who, int userHandle, boolean parent); void setNearbyNotificationStreamingPolicy(int policy); int getNearbyNotificationStreamingPolicy(); void setNearbyAppStreamingPolicy(int policy); int getNearbyAppStreamingPolicy(); void setKeyguardDisabledFeatures(in ComponentName who, int which, boolean parent); int getKeyguardDisabledFeatures(in ComponentName who, int userHandle, boolean parent); Loading core/res/AndroidManifest.xml +6 −0 Original line number Diff line number Diff line Loading @@ -5682,6 +5682,12 @@ <permission android:name="android.permission.RENOUNCE_PERMISSIONS" android:protectionLevel="signature|privileged" /> <!-- Allows an application to read nearby streaming policy. The policy allows the device to stream its notifications and apps to nearby devices. @hide --> <permission android:name="android.permission.READ_NEARBY_STREAMING_POLICY" android:protectionLevel="signature|privileged" /> <!-- @SystemApi Allows the holder to set the source of the data when setting a clip on the clipboard. @hide --> Loading services/devicepolicy/java/com/android/server/devicepolicy/ActiveAdmin.java +29 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.server.devicepolicy; import static android.app.admin.DevicePolicyManager.NEARBY_STREAMING_DISABLED; import static android.app.admin.DevicePolicyManager.PASSWORD_COMPLEXITY_NONE; import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED; Loading Loading @@ -69,6 +70,10 @@ class ActiveAdmin { "disable-bt-contacts-sharing"; private static final String TAG_DISABLE_SCREEN_CAPTURE = "disable-screen-capture"; private static final String TAG_DISABLE_ACCOUNT_MANAGEMENT = "disable-account-management"; private static final String TAG_NEARBY_NOTIFICATION_STREAMING_POLICY = "nearby-notification-streaming-policy"; private static final String TAG_NEARBY_APP_STREAMING_POLICY = "nearby-app-streaming-policy"; private static final String TAG_REQUIRE_AUTO_TIME = "require_auto_time"; private static final String TAG_FORCE_EPHEMERAL_USERS = "force_ephemeral_users"; private static final String TAG_IS_NETWORK_LOGGING_ENABLED = "is_network_logging_enabled"; Loading Loading @@ -159,6 +164,12 @@ class ActiveAdmin { @DevicePolicyManager.PasswordComplexity int mPasswordComplexity = PASSWORD_COMPLEXITY_NONE; @DevicePolicyManager.NearbyStreamingPolicy int mNearbyNotificationStreamingPolicy = NEARBY_STREAMING_DISABLED; @DevicePolicyManager.NearbyStreamingPolicy int mNearbyAppStreamingPolicy = NEARBY_STREAMING_DISABLED; @Nullable FactoryResetProtectionPolicy mFactoryResetProtectionPolicy = null; Loading Loading @@ -549,6 +560,14 @@ class ActiveAdmin { if (mPasswordComplexity != PASSWORD_COMPLEXITY_NONE) { writeAttributeValueToXml(out, TAG_PASSWORD_COMPLEXITY, mPasswordComplexity); } if (mNearbyNotificationStreamingPolicy != NEARBY_STREAMING_DISABLED) { writeAttributeValueToXml(out, TAG_NEARBY_NOTIFICATION_STREAMING_POLICY, mNearbyNotificationStreamingPolicy); } if (mNearbyAppStreamingPolicy != NEARBY_STREAMING_DISABLED) { writeAttributeValueToXml(out, TAG_NEARBY_APP_STREAMING_POLICY, mNearbyAppStreamingPolicy); } if (!TextUtils.isEmpty(mOrganizationId)) { writeTextToXml(out, TAG_ORGANIZATION_ID, mOrganizationId); } Loading Loading @@ -794,6 +813,10 @@ class ActiveAdmin { mCommonCriteriaMode = parser.getAttributeBoolean(null, ATTR_VALUE, false); } else if (TAG_PASSWORD_COMPLEXITY.equals(tag)) { mPasswordComplexity = parser.getAttributeInt(null, ATTR_VALUE); } else if (TAG_NEARBY_NOTIFICATION_STREAMING_POLICY.equals(tag)) { mNearbyNotificationStreamingPolicy = parser.getAttributeInt(null, ATTR_VALUE); } else if (TAG_NEARBY_APP_STREAMING_POLICY.equals(tag)) { mNearbyAppStreamingPolicy = parser.getAttributeInt(null, ATTR_VALUE); } else if (TAG_ORGANIZATION_ID.equals(tag)) { type = parser.next(); if (type == TypedXmlPullParser.TEXT) { Loading Loading @@ -1154,6 +1177,12 @@ class ActiveAdmin { pw.print("mPasswordComplexity="); pw.println(mPasswordComplexity); pw.print("mNearbyNotificationStreamingPolicy="); pw.println(mNearbyNotificationStreamingPolicy); pw.print("mNearbyAppStreamingPolicy="); pw.println(mNearbyAppStreamingPolicy); if (!TextUtils.isEmpty(mOrganizationId)) { pw.print("mOrganizationId="); pw.println(mOrganizationId); Loading Loading
core/api/current.txt +7 −0 Original line number Diff line number Diff line Loading @@ -7134,6 +7134,8 @@ package android.app.admin { method public int getMaximumFailedPasswordsForWipe(@Nullable android.content.ComponentName); method public long getMaximumTimeToLock(@Nullable android.content.ComponentName); method @NonNull public java.util.List<java.lang.String> getMeteredDataDisabledPackages(@NonNull android.content.ComponentName); method public int getNearbyAppStreamingPolicy(); method public int getNearbyNotificationStreamingPolicy(); method @Deprecated @ColorInt public int getOrganizationColor(@NonNull android.content.ComponentName); method @Nullable public CharSequence getOrganizationName(@NonNull android.content.ComponentName); method public java.util.List<android.telephony.data.ApnSetting> getOverrideApns(@NonNull android.content.ComponentName); Loading Loading @@ -7277,6 +7279,8 @@ package android.app.admin { method public void setMaximumFailedPasswordsForWipe(@NonNull android.content.ComponentName, int); method public void setMaximumTimeToLock(@NonNull android.content.ComponentName, long); method @NonNull public java.util.List<java.lang.String> setMeteredDataDisabledPackages(@NonNull android.content.ComponentName, @NonNull java.util.List<java.lang.String>); method public void setNearbyAppStreamingPolicy(int); method public void setNearbyNotificationStreamingPolicy(int); method public void setNetworkLoggingEnabled(@Nullable android.content.ComponentName, boolean); method @Deprecated public void setOrganizationColor(@NonNull android.content.ComponentName, int); method public void setOrganizationId(@NonNull String); Loading Loading @@ -7445,6 +7449,9 @@ package android.app.admin { field public static final int LOCK_TASK_FEATURE_SYSTEM_INFO = 1; // 0x1 field public static final int MAKE_USER_EPHEMERAL = 2; // 0x2 field public static final String MIME_TYPE_PROVISIONING_NFC = "application/com.android.managedprovisioning"; field public static final int NEARBY_STREAMING_DISABLED = 0; // 0x0 field public static final int NEARBY_STREAMING_ENABLED = 1; // 0x1 field public static final int NEARBY_STREAMING_SAME_MANAGED_ACCOUNT_ONLY = 2; // 0x2 field public static final int OPERATION_SAFETY_REASON_DRIVING_DISTRACTION = 1; // 0x1 field public static final int PASSWORD_COMPLEXITY_HIGH = 327680; // 0x50000 field public static final int PASSWORD_COMPLEXITY_LOW = 65536; // 0x10000
core/java/android/app/admin/DevicePolicyManager.java +94 −0 Original line number Diff line number Diff line Loading @@ -1675,6 +1675,29 @@ public class DevicePolicyManager { }) public @interface PasswordComplexity {} /** Indicates that nearby streaming is disabled. */ public static final int NEARBY_STREAMING_DISABLED = 0; /** Indicates that nearby streaming is enabled. */ public static final int NEARBY_STREAMING_ENABLED = 1; /** * Indicates that nearby streaming is enabled only to devices offering a comparable level of * security, with the same authenticated managed account. */ public static final int NEARBY_STREAMING_SAME_MANAGED_ACCOUNT_ONLY = 2; /** * @hide */ @Retention(RetentionPolicy.SOURCE) @IntDef(prefix = {"NEARBY_STREAMING_"}, value = { NEARBY_STREAMING_DISABLED, NEARBY_STREAMING_ENABLED, NEARBY_STREAMING_SAME_MANAGED_ACCOUNT_ONLY, }) public @interface NearbyStreamingPolicy {} /** * Activity action: have the user enter a new password for the parent profile. * If the intent is launched from within a managed profile, this will trigger Loading Loading @@ -7162,6 +7185,77 @@ public class DevicePolicyManager { return false; } /** * Called by a device/profile owner to set nearby notification streaming policy. Notification * streaming is sending notification data from pre-installed apps to nearby devices. * * @param policy One of the {@code NearbyStreamingPolicy} constants. * @throws SecurityException if caller is not a device or profile owner */ public void setNearbyNotificationStreamingPolicy(@NearbyStreamingPolicy int policy) { throwIfParentInstance("setNearbyNotificationStreamingPolicy"); if (mService == null) { return; } try { mService.setNearbyNotificationStreamingPolicy(policy); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * Returns the current runtime nearby notification streaming policy set by the device or profile * owner. The default is {@link #NEARBY_STREAMING_DISABLED}. */ public @NearbyStreamingPolicy int getNearbyNotificationStreamingPolicy() { throwIfParentInstance("getNearbyNotificationStreamingPolicy"); if (mService == null) { return NEARBY_STREAMING_DISABLED; } try { return mService.getNearbyNotificationStreamingPolicy(); } catch (RemoteException re) { throw re.rethrowFromSystemServer(); } } /** * Called by a device/profile owner to set nearby app streaming policy. App streaming is when * the device starts an app on a virtual display and sends a video stream of the app to nearby * devices. * * @param policy One of the {@code NearbyStreamingPolicy} constants. * @throws SecurityException if caller is not a device or profile owner. */ public void setNearbyAppStreamingPolicy(@NearbyStreamingPolicy int policy) { throwIfParentInstance("setNearbyAppStreamingPolicy"); if (mService == null) { return; } try { mService.setNearbyAppStreamingPolicy(policy); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * Returns the current runtime nearby app streaming policy set by the device or profile owner. * The default is {@link #NEARBY_STREAMING_DISABLED}. */ public @NearbyStreamingPolicy int getNearbyAppStreamingPolicy() { throwIfParentInstance("getNearbyAppStreamingPolicy"); if (mService == null) { return NEARBY_STREAMING_DISABLED; } try { return mService.getNearbyAppStreamingPolicy(); } catch (RemoteException re) { throw re.rethrowFromSystemServer(); } } /** * Called by a device owner, or alternatively a profile owner from Android 8.0 (API level 26) or * higher, to set whether auto time is required. If auto time is required, no user will be able Loading
core/java/android/app/admin/IDevicePolicyManager.aidl +6 −0 Original line number Diff line number Diff line Loading @@ -132,6 +132,12 @@ interface IDevicePolicyManager { void setScreenCaptureDisabled(in ComponentName who, boolean disabled, boolean parent); boolean getScreenCaptureDisabled(in ComponentName who, int userHandle, boolean parent); void setNearbyNotificationStreamingPolicy(int policy); int getNearbyNotificationStreamingPolicy(); void setNearbyAppStreamingPolicy(int policy); int getNearbyAppStreamingPolicy(); void setKeyguardDisabledFeatures(in ComponentName who, int which, boolean parent); int getKeyguardDisabledFeatures(in ComponentName who, int userHandle, boolean parent); Loading
core/res/AndroidManifest.xml +6 −0 Original line number Diff line number Diff line Loading @@ -5682,6 +5682,12 @@ <permission android:name="android.permission.RENOUNCE_PERMISSIONS" android:protectionLevel="signature|privileged" /> <!-- Allows an application to read nearby streaming policy. The policy allows the device to stream its notifications and apps to nearby devices. @hide --> <permission android:name="android.permission.READ_NEARBY_STREAMING_POLICY" android:protectionLevel="signature|privileged" /> <!-- @SystemApi Allows the holder to set the source of the data when setting a clip on the clipboard. @hide --> Loading
services/devicepolicy/java/com/android/server/devicepolicy/ActiveAdmin.java +29 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.server.devicepolicy; import static android.app.admin.DevicePolicyManager.NEARBY_STREAMING_DISABLED; import static android.app.admin.DevicePolicyManager.PASSWORD_COMPLEXITY_NONE; import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED; Loading Loading @@ -69,6 +70,10 @@ class ActiveAdmin { "disable-bt-contacts-sharing"; private static final String TAG_DISABLE_SCREEN_CAPTURE = "disable-screen-capture"; private static final String TAG_DISABLE_ACCOUNT_MANAGEMENT = "disable-account-management"; private static final String TAG_NEARBY_NOTIFICATION_STREAMING_POLICY = "nearby-notification-streaming-policy"; private static final String TAG_NEARBY_APP_STREAMING_POLICY = "nearby-app-streaming-policy"; private static final String TAG_REQUIRE_AUTO_TIME = "require_auto_time"; private static final String TAG_FORCE_EPHEMERAL_USERS = "force_ephemeral_users"; private static final String TAG_IS_NETWORK_LOGGING_ENABLED = "is_network_logging_enabled"; Loading Loading @@ -159,6 +164,12 @@ class ActiveAdmin { @DevicePolicyManager.PasswordComplexity int mPasswordComplexity = PASSWORD_COMPLEXITY_NONE; @DevicePolicyManager.NearbyStreamingPolicy int mNearbyNotificationStreamingPolicy = NEARBY_STREAMING_DISABLED; @DevicePolicyManager.NearbyStreamingPolicy int mNearbyAppStreamingPolicy = NEARBY_STREAMING_DISABLED; @Nullable FactoryResetProtectionPolicy mFactoryResetProtectionPolicy = null; Loading Loading @@ -549,6 +560,14 @@ class ActiveAdmin { if (mPasswordComplexity != PASSWORD_COMPLEXITY_NONE) { writeAttributeValueToXml(out, TAG_PASSWORD_COMPLEXITY, mPasswordComplexity); } if (mNearbyNotificationStreamingPolicy != NEARBY_STREAMING_DISABLED) { writeAttributeValueToXml(out, TAG_NEARBY_NOTIFICATION_STREAMING_POLICY, mNearbyNotificationStreamingPolicy); } if (mNearbyAppStreamingPolicy != NEARBY_STREAMING_DISABLED) { writeAttributeValueToXml(out, TAG_NEARBY_APP_STREAMING_POLICY, mNearbyAppStreamingPolicy); } if (!TextUtils.isEmpty(mOrganizationId)) { writeTextToXml(out, TAG_ORGANIZATION_ID, mOrganizationId); } Loading Loading @@ -794,6 +813,10 @@ class ActiveAdmin { mCommonCriteriaMode = parser.getAttributeBoolean(null, ATTR_VALUE, false); } else if (TAG_PASSWORD_COMPLEXITY.equals(tag)) { mPasswordComplexity = parser.getAttributeInt(null, ATTR_VALUE); } else if (TAG_NEARBY_NOTIFICATION_STREAMING_POLICY.equals(tag)) { mNearbyNotificationStreamingPolicy = parser.getAttributeInt(null, ATTR_VALUE); } else if (TAG_NEARBY_APP_STREAMING_POLICY.equals(tag)) { mNearbyAppStreamingPolicy = parser.getAttributeInt(null, ATTR_VALUE); } else if (TAG_ORGANIZATION_ID.equals(tag)) { type = parser.next(); if (type == TypedXmlPullParser.TEXT) { Loading Loading @@ -1154,6 +1177,12 @@ class ActiveAdmin { pw.print("mPasswordComplexity="); pw.println(mPasswordComplexity); pw.print("mNearbyNotificationStreamingPolicy="); pw.println(mNearbyNotificationStreamingPolicy); pw.print("mNearbyAppStreamingPolicy="); pw.println(mNearbyAppStreamingPolicy); if (!TextUtils.isEmpty(mOrganizationId)) { pw.print("mOrganizationId="); pw.println(mOrganizationId); Loading