Loading api/current.txt +4 −1 Original line number Diff line number Diff line Loading @@ -9905,6 +9905,8 @@ package android.content { field public static final java.lang.String ACTION_MEDIA_UNMOUNTABLE = "android.intent.action.MEDIA_UNMOUNTABLE"; field public static final java.lang.String ACTION_MEDIA_UNMOUNTED = "android.intent.action.MEDIA_UNMOUNTED"; field public static final java.lang.String ACTION_MY_PACKAGE_REPLACED = "android.intent.action.MY_PACKAGE_REPLACED"; field public static final java.lang.String ACTION_MY_PACKAGE_SUSPENDED = "android.intent.action.MY_PACKAGE_SUSPENDED"; field public static final java.lang.String ACTION_MY_PACKAGE_UNSUSPENDED = "android.intent.action.MY_PACKAGE_UNSUSPENDED"; field public static final java.lang.String ACTION_NEW_OUTGOING_CALL = "android.intent.action.NEW_OUTGOING_CALL"; field public static final java.lang.String ACTION_OPEN_DOCUMENT = "android.intent.action.OPEN_DOCUMENT"; field public static final java.lang.String ACTION_OPEN_DOCUMENT_TREE = "android.intent.action.OPEN_DOCUMENT_TREE"; Loading Loading @@ -10065,6 +10067,7 @@ package android.content { field public static final java.lang.String EXTRA_SPLIT_NAME = "android.intent.extra.SPLIT_NAME"; field public static final java.lang.String EXTRA_STREAM = "android.intent.extra.STREAM"; field public static final java.lang.String EXTRA_SUBJECT = "android.intent.extra.SUBJECT"; field public static final java.lang.String EXTRA_SUSPENDED_PACKAGE_EXTRAS = "android.intent.extra.SUSPENDED_PACKAGE_EXTRAS"; field public static final java.lang.String EXTRA_TEMPLATE = "android.intent.extra.TEMPLATE"; field public static final java.lang.String EXTRA_TEXT = "android.intent.extra.TEXT"; field public static final java.lang.String EXTRA_TITLE = "android.intent.extra.TITLE"; Loading Loading @@ -11178,7 +11181,7 @@ package android.content.pm { method public abstract android.content.res.Resources getResourcesForApplication(java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException; method public abstract android.content.pm.ServiceInfo getServiceInfo(android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException; method public abstract java.util.List<android.content.pm.SharedLibraryInfo> getSharedLibraries(int); method public android.os.PersistableBundle getSuspendedPackageAppExtras(); method public android.os.Bundle getSuspendedPackageAppExtras(); method public abstract android.content.pm.FeatureInfo[] getSystemAvailableFeatures(); method public abstract java.lang.String[] getSystemSharedLibraryNames(); method public abstract java.lang.CharSequence getText(java.lang.String, int, android.content.pm.ApplicationInfo); core/java/android/app/ApplicationPackageManager.java +4 −3 Original line number Diff line number Diff line Loading @@ -2167,15 +2167,16 @@ public class ApplicationPackageManager extends PackageManager { @Override public PersistableBundle getSuspendedPackageAppExtras(String packageName) { try { return mPM.getPackageSuspendedAppExtras(packageName, mContext.getUserId()); return mPM.getSuspendedPackageAppExtras(packageName, mContext.getUserId()); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } @Override public PersistableBundle getSuspendedPackageAppExtras() { return getSuspendedPackageAppExtras(mContext.getOpPackageName()); public Bundle getSuspendedPackageAppExtras() { final PersistableBundle extras = getSuspendedPackageAppExtras(mContext.getOpPackageName()); return extras != null ? new Bundle(extras.deepCopy()) : null; } @Override Loading core/java/android/content/Intent.java +48 −0 Original line number Diff line number Diff line Loading @@ -1813,6 +1813,17 @@ public class Intent implements Parcelable, Cloneable { */ public static final String EXTRA_PACKAGE_NAME = "android.intent.extra.PACKAGE_NAME"; /** * Intent extra: A {@link Bundle} of extras for a package being suspended. Will be sent with * {@link #ACTION_MY_PACKAGE_SUSPENDED}. * * @see #ACTION_MY_PACKAGE_SUSPENDED * @see #ACTION_MY_PACKAGE_UNSUSPENDED * @see PackageManager#isPackageSuspended() * @see PackageManager#getSuspendedPackageAppExtras() */ public static final String EXTRA_SUSPENDED_PACKAGE_EXTRAS = "android.intent.extra.SUSPENDED_PACKAGE_EXTRAS"; /** * Intent extra: An app split name. * <p> Loading Loading @@ -2237,6 +2248,43 @@ public class Intent implements Parcelable, Cloneable { */ @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) public static final String ACTION_PACKAGES_UNSUSPENDED = "android.intent.action.PACKAGES_UNSUSPENDED"; /** * Broadcast Action: Sent to a package that has been suspended by the system. This is sent * whenever a package is put into a suspended state or any of it's app extras change while * in the suspended state. * <p> Optionally includes the following extras: * <ul> * <li> {@link #EXTRA_SUSPENDED_PACKAGE_EXTRAS} which is a {@link Bundle} which will contain * useful information for the app being suspended. * </ul> * <p class="note">This is a protected intent that can only be sent * by the system. <em>This will be delivered to {@link BroadcastReceiver} components declared in * the manifest.</em> * * @see #ACTION_MY_PACKAGE_UNSUSPENDED * @see #EXTRA_SUSPENDED_PACKAGE_EXTRAS * @see PackageManager#isPackageSuspended() * @see PackageManager#getSuspendedPackageAppExtras() */ @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) public static final String ACTION_MY_PACKAGE_SUSPENDED = "android.intent.action.MY_PACKAGE_SUSPENDED"; /** * Broadcast Action: Sent to a package that has been unsuspended. * * <p class="note">This is a protected intent that can only be sent * by the system. <em>This will be delivered to {@link BroadcastReceiver} components declared in * the manifest.</em> * * @see #ACTION_MY_PACKAGE_SUSPENDED * @see #EXTRA_SUSPENDED_PACKAGE_EXTRAS * @see PackageManager#isPackageSuspended() * @see PackageManager#getSuspendedPackageAppExtras() */ @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) public static final String ACTION_MY_PACKAGE_UNSUSPENDED = "android.intent.action.MY_PACKAGE_UNSUSPENDED"; /** * Broadcast Action: A user ID has been removed from the system. The user * ID number is stored in the extra data under {@link #EXTRA_UID}. Loading core/java/android/content/pm/IPackageManager.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -278,7 +278,7 @@ interface IPackageManager { boolean isPackageSuspendedForUser(String packageName, int userId); PersistableBundle getPackageSuspendedAppExtras(String pacakgeName, int userId); PersistableBundle getSuspendedPackageAppExtras(String packageName, int userId); void setSuspendedPackageAppExtras(String packageName, in PersistableBundle appExtras, int userId); Loading core/java/android/content/pm/PackageManager.java +25 −8 Original line number Diff line number Diff line Loading @@ -5513,7 +5513,7 @@ public abstract class PackageManager { * Puts the package in a suspended state, where attempts at starting activities are denied. * * <p>It doesn't remove the data or the actual package file. The application's notifications * will be hidden, any of the it's started activities will be stopped and it will not be able to * will be hidden, any of its started activities will be stopped and it will not be able to * show toasts or dialogs or ring the device. When the user tries to launch a suspended app, a * system dialog with the given {@code dialogMessage} will be shown instead.</p> * Loading Loading @@ -5577,11 +5577,26 @@ public abstract class PackageManager { } /** * Apps can query this to know if they have been suspended. * Apps can query this to know if they have been suspended. A system app with the permission * {@code android.permission.SUSPEND_APPS} can put any app on the device into a suspended state. * * <p>While in this state, the application's notifications will be hidden, any of its started * activities will be stopped and it will not be able to show toasts or dialogs or ring the * device. When the user tries to launch a suspended app, the system will, instead, show a * dialog to the user informing them that they cannot use this app while it is suspended. * * <p>When an app is put into this state, the broadcast action * {@link Intent#ACTION_MY_PACKAGE_SUSPENDED} will be delivered to any of its broadcast * receivers that included this action in their intent-filters, <em>including manifest * receivers.</em> Similarly, a broadcast action {@link Intent#ACTION_MY_PACKAGE_UNSUSPENDED} * is delivered when a previously suspended app is taken out of this state. * </p> * * @return {@code true} if the calling package has been suspended, {@code false} otherwise. * * @see #getSuspendedPackageAppExtras() * @see Intent#ACTION_MY_PACKAGE_SUSPENDED * @see Intent#ACTION_MY_PACKAGE_UNSUSPENDED */ public boolean isPackageSuspended() { throw new UnsupportedOperationException("isPackageSuspended not implemented"); Loading @@ -5602,7 +5617,7 @@ public abstract class PackageManager { */ @SystemApi @RequiresPermission(Manifest.permission.SUSPEND_APPS) public PersistableBundle getSuspendedPackageAppExtras(String packageName) { public @Nullable PersistableBundle getSuspendedPackageAppExtras(String packageName) { throw new UnsupportedOperationException("getSuspendedPackageAppExtras not implemented"); } Loading Loading @@ -5631,15 +5646,17 @@ public abstract class PackageManager { * Returns any extra information supplied as {@code appExtras} to the system when the calling * app was suspended. * * <p> Note: This just returns whatever {@link PersistableBundle} was passed to the system via * {@code setPackagesSuspended(String[], boolean, PersistableBundle, PersistableBundle, * String)} when suspending the package, <em> which might be {@code null}. </em></p> * <p>Note: If no extras were supplied to the system, this method will return {@code null}, even * when the calling app has been suspended.</p> * * @return A {@link PersistableBundle} containing the extras for the app, or {@code null} if the * @return A {@link Bundle} containing the extras for the app, or {@code null} if the * package is not currently suspended. * * @see #isPackageSuspended() * @see Intent#ACTION_MY_PACKAGE_UNSUSPENDED * @see Intent#ACTION_MY_PACKAGE_SUSPENDED */ public @Nullable PersistableBundle getSuspendedPackageAppExtras() { public @Nullable Bundle getSuspendedPackageAppExtras() { throw new UnsupportedOperationException("getSuspendedPackageAppExtras not implemented"); } Loading Loading
api/current.txt +4 −1 Original line number Diff line number Diff line Loading @@ -9905,6 +9905,8 @@ package android.content { field public static final java.lang.String ACTION_MEDIA_UNMOUNTABLE = "android.intent.action.MEDIA_UNMOUNTABLE"; field public static final java.lang.String ACTION_MEDIA_UNMOUNTED = "android.intent.action.MEDIA_UNMOUNTED"; field public static final java.lang.String ACTION_MY_PACKAGE_REPLACED = "android.intent.action.MY_PACKAGE_REPLACED"; field public static final java.lang.String ACTION_MY_PACKAGE_SUSPENDED = "android.intent.action.MY_PACKAGE_SUSPENDED"; field public static final java.lang.String ACTION_MY_PACKAGE_UNSUSPENDED = "android.intent.action.MY_PACKAGE_UNSUSPENDED"; field public static final java.lang.String ACTION_NEW_OUTGOING_CALL = "android.intent.action.NEW_OUTGOING_CALL"; field public static final java.lang.String ACTION_OPEN_DOCUMENT = "android.intent.action.OPEN_DOCUMENT"; field public static final java.lang.String ACTION_OPEN_DOCUMENT_TREE = "android.intent.action.OPEN_DOCUMENT_TREE"; Loading Loading @@ -10065,6 +10067,7 @@ package android.content { field public static final java.lang.String EXTRA_SPLIT_NAME = "android.intent.extra.SPLIT_NAME"; field public static final java.lang.String EXTRA_STREAM = "android.intent.extra.STREAM"; field public static final java.lang.String EXTRA_SUBJECT = "android.intent.extra.SUBJECT"; field public static final java.lang.String EXTRA_SUSPENDED_PACKAGE_EXTRAS = "android.intent.extra.SUSPENDED_PACKAGE_EXTRAS"; field public static final java.lang.String EXTRA_TEMPLATE = "android.intent.extra.TEMPLATE"; field public static final java.lang.String EXTRA_TEXT = "android.intent.extra.TEXT"; field public static final java.lang.String EXTRA_TITLE = "android.intent.extra.TITLE"; Loading Loading @@ -11178,7 +11181,7 @@ package android.content.pm { method public abstract android.content.res.Resources getResourcesForApplication(java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException; method public abstract android.content.pm.ServiceInfo getServiceInfo(android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException; method public abstract java.util.List<android.content.pm.SharedLibraryInfo> getSharedLibraries(int); method public android.os.PersistableBundle getSuspendedPackageAppExtras(); method public android.os.Bundle getSuspendedPackageAppExtras(); method public abstract android.content.pm.FeatureInfo[] getSystemAvailableFeatures(); method public abstract java.lang.String[] getSystemSharedLibraryNames(); method public abstract java.lang.CharSequence getText(java.lang.String, int, android.content.pm.ApplicationInfo);
core/java/android/app/ApplicationPackageManager.java +4 −3 Original line number Diff line number Diff line Loading @@ -2167,15 +2167,16 @@ public class ApplicationPackageManager extends PackageManager { @Override public PersistableBundle getSuspendedPackageAppExtras(String packageName) { try { return mPM.getPackageSuspendedAppExtras(packageName, mContext.getUserId()); return mPM.getSuspendedPackageAppExtras(packageName, mContext.getUserId()); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } @Override public PersistableBundle getSuspendedPackageAppExtras() { return getSuspendedPackageAppExtras(mContext.getOpPackageName()); public Bundle getSuspendedPackageAppExtras() { final PersistableBundle extras = getSuspendedPackageAppExtras(mContext.getOpPackageName()); return extras != null ? new Bundle(extras.deepCopy()) : null; } @Override Loading
core/java/android/content/Intent.java +48 −0 Original line number Diff line number Diff line Loading @@ -1813,6 +1813,17 @@ public class Intent implements Parcelable, Cloneable { */ public static final String EXTRA_PACKAGE_NAME = "android.intent.extra.PACKAGE_NAME"; /** * Intent extra: A {@link Bundle} of extras for a package being suspended. Will be sent with * {@link #ACTION_MY_PACKAGE_SUSPENDED}. * * @see #ACTION_MY_PACKAGE_SUSPENDED * @see #ACTION_MY_PACKAGE_UNSUSPENDED * @see PackageManager#isPackageSuspended() * @see PackageManager#getSuspendedPackageAppExtras() */ public static final String EXTRA_SUSPENDED_PACKAGE_EXTRAS = "android.intent.extra.SUSPENDED_PACKAGE_EXTRAS"; /** * Intent extra: An app split name. * <p> Loading Loading @@ -2237,6 +2248,43 @@ public class Intent implements Parcelable, Cloneable { */ @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) public static final String ACTION_PACKAGES_UNSUSPENDED = "android.intent.action.PACKAGES_UNSUSPENDED"; /** * Broadcast Action: Sent to a package that has been suspended by the system. This is sent * whenever a package is put into a suspended state or any of it's app extras change while * in the suspended state. * <p> Optionally includes the following extras: * <ul> * <li> {@link #EXTRA_SUSPENDED_PACKAGE_EXTRAS} which is a {@link Bundle} which will contain * useful information for the app being suspended. * </ul> * <p class="note">This is a protected intent that can only be sent * by the system. <em>This will be delivered to {@link BroadcastReceiver} components declared in * the manifest.</em> * * @see #ACTION_MY_PACKAGE_UNSUSPENDED * @see #EXTRA_SUSPENDED_PACKAGE_EXTRAS * @see PackageManager#isPackageSuspended() * @see PackageManager#getSuspendedPackageAppExtras() */ @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) public static final String ACTION_MY_PACKAGE_SUSPENDED = "android.intent.action.MY_PACKAGE_SUSPENDED"; /** * Broadcast Action: Sent to a package that has been unsuspended. * * <p class="note">This is a protected intent that can only be sent * by the system. <em>This will be delivered to {@link BroadcastReceiver} components declared in * the manifest.</em> * * @see #ACTION_MY_PACKAGE_SUSPENDED * @see #EXTRA_SUSPENDED_PACKAGE_EXTRAS * @see PackageManager#isPackageSuspended() * @see PackageManager#getSuspendedPackageAppExtras() */ @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) public static final String ACTION_MY_PACKAGE_UNSUSPENDED = "android.intent.action.MY_PACKAGE_UNSUSPENDED"; /** * Broadcast Action: A user ID has been removed from the system. The user * ID number is stored in the extra data under {@link #EXTRA_UID}. Loading
core/java/android/content/pm/IPackageManager.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -278,7 +278,7 @@ interface IPackageManager { boolean isPackageSuspendedForUser(String packageName, int userId); PersistableBundle getPackageSuspendedAppExtras(String pacakgeName, int userId); PersistableBundle getSuspendedPackageAppExtras(String packageName, int userId); void setSuspendedPackageAppExtras(String packageName, in PersistableBundle appExtras, int userId); Loading
core/java/android/content/pm/PackageManager.java +25 −8 Original line number Diff line number Diff line Loading @@ -5513,7 +5513,7 @@ public abstract class PackageManager { * Puts the package in a suspended state, where attempts at starting activities are denied. * * <p>It doesn't remove the data or the actual package file. The application's notifications * will be hidden, any of the it's started activities will be stopped and it will not be able to * will be hidden, any of its started activities will be stopped and it will not be able to * show toasts or dialogs or ring the device. When the user tries to launch a suspended app, a * system dialog with the given {@code dialogMessage} will be shown instead.</p> * Loading Loading @@ -5577,11 +5577,26 @@ public abstract class PackageManager { } /** * Apps can query this to know if they have been suspended. * Apps can query this to know if they have been suspended. A system app with the permission * {@code android.permission.SUSPEND_APPS} can put any app on the device into a suspended state. * * <p>While in this state, the application's notifications will be hidden, any of its started * activities will be stopped and it will not be able to show toasts or dialogs or ring the * device. When the user tries to launch a suspended app, the system will, instead, show a * dialog to the user informing them that they cannot use this app while it is suspended. * * <p>When an app is put into this state, the broadcast action * {@link Intent#ACTION_MY_PACKAGE_SUSPENDED} will be delivered to any of its broadcast * receivers that included this action in their intent-filters, <em>including manifest * receivers.</em> Similarly, a broadcast action {@link Intent#ACTION_MY_PACKAGE_UNSUSPENDED} * is delivered when a previously suspended app is taken out of this state. * </p> * * @return {@code true} if the calling package has been suspended, {@code false} otherwise. * * @see #getSuspendedPackageAppExtras() * @see Intent#ACTION_MY_PACKAGE_SUSPENDED * @see Intent#ACTION_MY_PACKAGE_UNSUSPENDED */ public boolean isPackageSuspended() { throw new UnsupportedOperationException("isPackageSuspended not implemented"); Loading @@ -5602,7 +5617,7 @@ public abstract class PackageManager { */ @SystemApi @RequiresPermission(Manifest.permission.SUSPEND_APPS) public PersistableBundle getSuspendedPackageAppExtras(String packageName) { public @Nullable PersistableBundle getSuspendedPackageAppExtras(String packageName) { throw new UnsupportedOperationException("getSuspendedPackageAppExtras not implemented"); } Loading Loading @@ -5631,15 +5646,17 @@ public abstract class PackageManager { * Returns any extra information supplied as {@code appExtras} to the system when the calling * app was suspended. * * <p> Note: This just returns whatever {@link PersistableBundle} was passed to the system via * {@code setPackagesSuspended(String[], boolean, PersistableBundle, PersistableBundle, * String)} when suspending the package, <em> which might be {@code null}. </em></p> * <p>Note: If no extras were supplied to the system, this method will return {@code null}, even * when the calling app has been suspended.</p> * * @return A {@link PersistableBundle} containing the extras for the app, or {@code null} if the * @return A {@link Bundle} containing the extras for the app, or {@code null} if the * package is not currently suspended. * * @see #isPackageSuspended() * @see Intent#ACTION_MY_PACKAGE_UNSUSPENDED * @see Intent#ACTION_MY_PACKAGE_SUSPENDED */ public @Nullable PersistableBundle getSuspendedPackageAppExtras() { public @Nullable Bundle getSuspendedPackageAppExtras() { throw new UnsupportedOperationException("getSuspendedPackageAppExtras not implemented"); } Loading