Loading core/api/current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -10253,6 +10253,8 @@ package android.content { field public static final String NSD_SERVICE = "servicediscovery"; field public static final String POWER_SERVICE = "power"; field public static final String PRINT_SERVICE = "print"; field public static final int RECEIVER_EXPORTED = 2; // 0x2 field public static final int RECEIVER_NOT_EXPORTED = 4; // 0x4 field public static final int RECEIVER_VISIBLE_TO_INSTANT_APPS = 1; // 0x1 field public static final String RESTRICTIONS_SERVICE = "restrictions"; field public static final String ROLE_SERVICE = "role"; core/api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -1861,6 +1861,7 @@ package android.content { method @Nullable public abstract java.io.File getPreloadsFileCache(); method public abstract boolean isCredentialProtectedStorage(); method @Nullable @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) public android.content.Intent registerReceiverForAllUsers(@Nullable android.content.BroadcastReceiver, @NonNull android.content.IntentFilter, @Nullable String, @Nullable android.os.Handler); method @Nullable @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) public android.content.Intent registerReceiverForAllUsers(@Nullable android.content.BroadcastReceiver, @NonNull android.content.IntentFilter, @Nullable String, @Nullable android.os.Handler, int); method public abstract void sendBroadcast(android.content.Intent, @Nullable String, @Nullable android.os.Bundle); method @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS) public abstract void sendBroadcastAsUser(@RequiresPermission android.content.Intent, android.os.UserHandle, @Nullable String, @Nullable android.os.Bundle); method public abstract void sendOrderedBroadcast(@NonNull android.content.Intent, @Nullable String, @Nullable android.os.Bundle, @Nullable android.content.BroadcastReceiver, @Nullable android.os.Handler, int, @Nullable String, @Nullable android.os.Bundle); Loading core/java/android/app/ContextImpl.java +14 −0 Original line number Diff line number Diff line Loading @@ -1634,6 +1634,13 @@ class ContextImpl extends Context { filter, broadcastPermission, scheduler); } @Override public Intent registerReceiverForAllUsers(BroadcastReceiver receiver, IntentFilter filter, String broadcastPermission, Handler scheduler, int flags) { return registerReceiverAsUser(receiver, UserHandle.ALL, filter, broadcastPermission, scheduler, flags); } @Override public Intent registerReceiverAsUser(BroadcastReceiver receiver, UserHandle user, IntentFilter filter, String broadcastPermission, Handler scheduler) { Loading @@ -1641,6 +1648,13 @@ class ContextImpl extends Context { filter, broadcastPermission, scheduler, getOuterContext(), 0); } @Override public Intent registerReceiverAsUser(BroadcastReceiver receiver, UserHandle user, IntentFilter filter, String broadcastPermission, Handler scheduler, int flags) { return registerReceiverInternal(receiver, user.getIdentifier(), filter, broadcastPermission, scheduler, getOuterContext(), flags); } private Intent registerReceiverInternal(BroadcastReceiver receiver, int userId, IntentFilter filter, String broadcastPermission, Handler scheduler, Context context, int flags) { Loading core/java/android/content/Context.java +97 −6 Original line number Diff line number Diff line Loading @@ -483,8 +483,8 @@ public abstract class Context { | Context.BIND_NOT_PERCEPTIBLE | Context.BIND_NOT_VISIBLE; /** @hide */ @IntDef(flag = true, prefix = { "RECEIVER_VISIBLE_" }, value = { RECEIVER_VISIBLE_TO_INSTANT_APPS @IntDef(flag = true, prefix = { "RECEIVER_VISIBLE" }, value = { RECEIVER_VISIBLE_TO_INSTANT_APPS, RECEIVER_EXPORTED, RECEIVER_NOT_EXPORTED }) @Retention(RetentionPolicy.SOURCE) public @interface RegisterReceiverFlags {} Loading @@ -494,6 +494,18 @@ public abstract class Context { */ public static final int RECEIVER_VISIBLE_TO_INSTANT_APPS = 0x1; /** * Flag for {@link #registerReceiver}: The receiver can receive broadcasts from other Apps. * Has the same behavior as marking a statically registered receiver with "exported=true" */ public static final int RECEIVER_EXPORTED = 0x2; /** * Flag for {@link #registerReceiver}: The receiver cannot receive broadcasts from other Apps. * Has the same behavior as marking a statically registered receiver with "exported=false" */ public static final int RECEIVER_NOT_EXPORTED = 0x4; /** * Returns an AssetManager instance for the application's package. * <p> Loading Loading @@ -2881,8 +2893,12 @@ public abstract class Context { * * @param receiver The BroadcastReceiver to handle the broadcast. * @param filter Selects the Intent broadcasts to be received. * @param flags Additional options for the receiver. May be 0 or * {@link #RECEIVER_VISIBLE_TO_INSTANT_APPS}. * @param flags Additional options for the receiver. As of * {@link android.os.Build.VERSION_CODES#TIRAMISU}, either {@link #RECEIVER_EXPORTED} or * {@link #RECEIVER_NOT_EXPORTED} must be specified if the receiver isn't being registered * for protected broadcasts, and may additionally specify * {@link #RECEIVER_VISIBLE_TO_INSTANT_APPS} if {@link #RECEIVER_EXPORTED} is * specified. * * @return The first sticky intent found that matches <var>filter</var>, * or null if there are none. Loading Loading @@ -2954,8 +2970,12 @@ public abstract class Context { * no permission is required. * @param scheduler Handler identifying the thread that will receive * the Intent. If null, the main thread of the process will be used. * @param flags Additional options for the receiver. May be 0 or * {@link #RECEIVER_VISIBLE_TO_INSTANT_APPS}. * @param flags Additional options for the receiver. As of * {@link android.os.Build.VERSION_CODES#TIRAMISU}, either {@link #RECEIVER_EXPORTED} or * {@link #RECEIVER_NOT_EXPORTED} must be specified if the receiver isn't being registered * for protected broadcasts, and may additionally specify * {@link #RECEIVER_VISIBLE_TO_INSTANT_APPS} if {@link #RECEIVER_EXPORTED} is * specified. * * @return The first sticky intent found that matches <var>filter</var>, * or null if there are none. Loading Loading @@ -3001,6 +3021,42 @@ public abstract class Context { throw new RuntimeException("Not implemented. Must override in a subclass."); } /** * Same as {@link #registerReceiver(BroadcastReceiver, IntentFilter, String, Handler, int)} * but this receiver will receive broadcasts that are sent to all users. The receiver can * use {@link BroadcastReceiver#getSendingUser} to determine on which user the broadcast * was sent. * * @param receiver The BroadcastReceiver to handle the broadcast. * @param filter Selects the Intent broadcasts to be received. * @param broadcastPermission String naming a permissions that a * broadcaster must hold in order to send an Intent to you. If {@code null}, * no permission is required. * @param scheduler Handler identifying the thread that will receive * the Intent. If {@code null}, the main thread of the process will be used. * @param flags Additional options for the receiver. As of * {@link android.os.Build.VERSION_CODES#TIRAMISU}, either {@link #RECEIVER_EXPORTED} or * {@link #RECEIVER_NOT_EXPORTED} must be specified if the receiver isn't being * registered for protected broadcasts * * @return The first sticky intent found that matches <var>filter</var>, * or {@code null} if there are none. * * @see #registerReceiver(BroadcastReceiver, IntentFilter, String, Handler, int) * @see #sendBroadcast * @see #unregisterReceiver * @hide */ @SuppressLint("IntentBuilderName") @Nullable @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) @SystemApi public Intent registerReceiverForAllUsers(@Nullable BroadcastReceiver receiver, @NonNull IntentFilter filter, @Nullable String broadcastPermission, @Nullable Handler scheduler, @RegisterReceiverFlags int flags) { throw new RuntimeException("Not implemented. Must override in a subclass."); } /** * @hide * Same as {@link #registerReceiver(BroadcastReceiver, IntentFilter, String, Handler) Loading Loading @@ -3031,6 +3087,41 @@ public abstract class Context { UserHandle user, IntentFilter filter, @Nullable String broadcastPermission, @Nullable Handler scheduler); /** * @hide * Same as {@link #registerReceiver(BroadcastReceiver, IntentFilter, String, Handler, int) * but for a specific user. This receiver will receiver broadcasts that * are sent to the requested user. * * @param receiver The BroadcastReceiver to handle the broadcast. * @param user UserHandle to send the intent to. * @param filter Selects the Intent broadcasts to be received. * @param broadcastPermission String naming a permissions that a * broadcaster must hold in order to send an Intent to you. If null, * no permission is required. * @param scheduler Handler identifying the thread that will receive * the Intent. If null, the main thread of the process will be used. * @param flags Additional options for the receiver. As of * {@link android.os.Build.VERSION_CODES#TIRAMISU}, either {@link #RECEIVER_EXPORTED} or * {@link #RECEIVER_NOT_EXPORTED} must be specified if the receiver isn't being * registered for protected broadcasts * * @return The first sticky intent found that matches <var>filter</var>, * or null if there are none. * * @see #registerReceiver(BroadcastReceiver, IntentFilter, String, Handler, int) * @see #sendBroadcast * @see #unregisterReceiver */ @SuppressWarnings("HiddenAbstractMethod") @SuppressLint("IntentBuilderName") @Nullable @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) @UnsupportedAppUsage public abstract Intent registerReceiverAsUser(BroadcastReceiver receiver, UserHandle user, IntentFilter filter, @Nullable String broadcastPermission, @Nullable Handler scheduler, @RegisterReceiverFlags int flags); /** * Unregister a previously registered BroadcastReceiver. <em>All</em> * filters that have been registered for this BroadcastReceiver will be Loading core/java/android/content/ContextWrapper.java +23 −3 Original line number Diff line number Diff line Loading @@ -730,16 +730,36 @@ public class ContextWrapper extends Context { scheduler); } /** @hide */ @Override @Nullable public Intent registerReceiverForAllUsers(@Nullable BroadcastReceiver receiver, @NonNull IntentFilter filter, @Nullable String broadcastPermission, @Nullable Handler scheduler, int flags) { return mBase.registerReceiverForAllUsers(receiver, filter, broadcastPermission, scheduler, flags); } /** @hide */ @Override @UnsupportedAppUsage public Intent registerReceiverAsUser( BroadcastReceiver receiver, UserHandle user, IntentFilter filter, String broadcastPermission, Handler scheduler) { public Intent registerReceiverAsUser(@Nullable BroadcastReceiver receiver, UserHandle user, IntentFilter filter, @Nullable String broadcastPermission, @Nullable Handler scheduler) { return mBase.registerReceiverAsUser(receiver, user, filter, broadcastPermission, scheduler); } /** @hide */ @Override @UnsupportedAppUsage public Intent registerReceiverAsUser(@Nullable BroadcastReceiver receiver, UserHandle user, IntentFilter filter, @Nullable String broadcastPermission, @Nullable Handler scheduler, int flags) { return mBase.registerReceiverAsUser(receiver, user, filter, broadcastPermission, scheduler, flags); } @Override public void unregisterReceiver(BroadcastReceiver receiver) { mBase.unregisterReceiver(receiver); Loading Loading
core/api/current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -10253,6 +10253,8 @@ package android.content { field public static final String NSD_SERVICE = "servicediscovery"; field public static final String POWER_SERVICE = "power"; field public static final String PRINT_SERVICE = "print"; field public static final int RECEIVER_EXPORTED = 2; // 0x2 field public static final int RECEIVER_NOT_EXPORTED = 4; // 0x4 field public static final int RECEIVER_VISIBLE_TO_INSTANT_APPS = 1; // 0x1 field public static final String RESTRICTIONS_SERVICE = "restrictions"; field public static final String ROLE_SERVICE = "role";
core/api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -1861,6 +1861,7 @@ package android.content { method @Nullable public abstract java.io.File getPreloadsFileCache(); method public abstract boolean isCredentialProtectedStorage(); method @Nullable @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) public android.content.Intent registerReceiverForAllUsers(@Nullable android.content.BroadcastReceiver, @NonNull android.content.IntentFilter, @Nullable String, @Nullable android.os.Handler); method @Nullable @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) public android.content.Intent registerReceiverForAllUsers(@Nullable android.content.BroadcastReceiver, @NonNull android.content.IntentFilter, @Nullable String, @Nullable android.os.Handler, int); method public abstract void sendBroadcast(android.content.Intent, @Nullable String, @Nullable android.os.Bundle); method @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS) public abstract void sendBroadcastAsUser(@RequiresPermission android.content.Intent, android.os.UserHandle, @Nullable String, @Nullable android.os.Bundle); method public abstract void sendOrderedBroadcast(@NonNull android.content.Intent, @Nullable String, @Nullable android.os.Bundle, @Nullable android.content.BroadcastReceiver, @Nullable android.os.Handler, int, @Nullable String, @Nullable android.os.Bundle); Loading
core/java/android/app/ContextImpl.java +14 −0 Original line number Diff line number Diff line Loading @@ -1634,6 +1634,13 @@ class ContextImpl extends Context { filter, broadcastPermission, scheduler); } @Override public Intent registerReceiverForAllUsers(BroadcastReceiver receiver, IntentFilter filter, String broadcastPermission, Handler scheduler, int flags) { return registerReceiverAsUser(receiver, UserHandle.ALL, filter, broadcastPermission, scheduler, flags); } @Override public Intent registerReceiverAsUser(BroadcastReceiver receiver, UserHandle user, IntentFilter filter, String broadcastPermission, Handler scheduler) { Loading @@ -1641,6 +1648,13 @@ class ContextImpl extends Context { filter, broadcastPermission, scheduler, getOuterContext(), 0); } @Override public Intent registerReceiverAsUser(BroadcastReceiver receiver, UserHandle user, IntentFilter filter, String broadcastPermission, Handler scheduler, int flags) { return registerReceiverInternal(receiver, user.getIdentifier(), filter, broadcastPermission, scheduler, getOuterContext(), flags); } private Intent registerReceiverInternal(BroadcastReceiver receiver, int userId, IntentFilter filter, String broadcastPermission, Handler scheduler, Context context, int flags) { Loading
core/java/android/content/Context.java +97 −6 Original line number Diff line number Diff line Loading @@ -483,8 +483,8 @@ public abstract class Context { | Context.BIND_NOT_PERCEPTIBLE | Context.BIND_NOT_VISIBLE; /** @hide */ @IntDef(flag = true, prefix = { "RECEIVER_VISIBLE_" }, value = { RECEIVER_VISIBLE_TO_INSTANT_APPS @IntDef(flag = true, prefix = { "RECEIVER_VISIBLE" }, value = { RECEIVER_VISIBLE_TO_INSTANT_APPS, RECEIVER_EXPORTED, RECEIVER_NOT_EXPORTED }) @Retention(RetentionPolicy.SOURCE) public @interface RegisterReceiverFlags {} Loading @@ -494,6 +494,18 @@ public abstract class Context { */ public static final int RECEIVER_VISIBLE_TO_INSTANT_APPS = 0x1; /** * Flag for {@link #registerReceiver}: The receiver can receive broadcasts from other Apps. * Has the same behavior as marking a statically registered receiver with "exported=true" */ public static final int RECEIVER_EXPORTED = 0x2; /** * Flag for {@link #registerReceiver}: The receiver cannot receive broadcasts from other Apps. * Has the same behavior as marking a statically registered receiver with "exported=false" */ public static final int RECEIVER_NOT_EXPORTED = 0x4; /** * Returns an AssetManager instance for the application's package. * <p> Loading Loading @@ -2881,8 +2893,12 @@ public abstract class Context { * * @param receiver The BroadcastReceiver to handle the broadcast. * @param filter Selects the Intent broadcasts to be received. * @param flags Additional options for the receiver. May be 0 or * {@link #RECEIVER_VISIBLE_TO_INSTANT_APPS}. * @param flags Additional options for the receiver. As of * {@link android.os.Build.VERSION_CODES#TIRAMISU}, either {@link #RECEIVER_EXPORTED} or * {@link #RECEIVER_NOT_EXPORTED} must be specified if the receiver isn't being registered * for protected broadcasts, and may additionally specify * {@link #RECEIVER_VISIBLE_TO_INSTANT_APPS} if {@link #RECEIVER_EXPORTED} is * specified. * * @return The first sticky intent found that matches <var>filter</var>, * or null if there are none. Loading Loading @@ -2954,8 +2970,12 @@ public abstract class Context { * no permission is required. * @param scheduler Handler identifying the thread that will receive * the Intent. If null, the main thread of the process will be used. * @param flags Additional options for the receiver. May be 0 or * {@link #RECEIVER_VISIBLE_TO_INSTANT_APPS}. * @param flags Additional options for the receiver. As of * {@link android.os.Build.VERSION_CODES#TIRAMISU}, either {@link #RECEIVER_EXPORTED} or * {@link #RECEIVER_NOT_EXPORTED} must be specified if the receiver isn't being registered * for protected broadcasts, and may additionally specify * {@link #RECEIVER_VISIBLE_TO_INSTANT_APPS} if {@link #RECEIVER_EXPORTED} is * specified. * * @return The first sticky intent found that matches <var>filter</var>, * or null if there are none. Loading Loading @@ -3001,6 +3021,42 @@ public abstract class Context { throw new RuntimeException("Not implemented. Must override in a subclass."); } /** * Same as {@link #registerReceiver(BroadcastReceiver, IntentFilter, String, Handler, int)} * but this receiver will receive broadcasts that are sent to all users. The receiver can * use {@link BroadcastReceiver#getSendingUser} to determine on which user the broadcast * was sent. * * @param receiver The BroadcastReceiver to handle the broadcast. * @param filter Selects the Intent broadcasts to be received. * @param broadcastPermission String naming a permissions that a * broadcaster must hold in order to send an Intent to you. If {@code null}, * no permission is required. * @param scheduler Handler identifying the thread that will receive * the Intent. If {@code null}, the main thread of the process will be used. * @param flags Additional options for the receiver. As of * {@link android.os.Build.VERSION_CODES#TIRAMISU}, either {@link #RECEIVER_EXPORTED} or * {@link #RECEIVER_NOT_EXPORTED} must be specified if the receiver isn't being * registered for protected broadcasts * * @return The first sticky intent found that matches <var>filter</var>, * or {@code null} if there are none. * * @see #registerReceiver(BroadcastReceiver, IntentFilter, String, Handler, int) * @see #sendBroadcast * @see #unregisterReceiver * @hide */ @SuppressLint("IntentBuilderName") @Nullable @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) @SystemApi public Intent registerReceiverForAllUsers(@Nullable BroadcastReceiver receiver, @NonNull IntentFilter filter, @Nullable String broadcastPermission, @Nullable Handler scheduler, @RegisterReceiverFlags int flags) { throw new RuntimeException("Not implemented. Must override in a subclass."); } /** * @hide * Same as {@link #registerReceiver(BroadcastReceiver, IntentFilter, String, Handler) Loading Loading @@ -3031,6 +3087,41 @@ public abstract class Context { UserHandle user, IntentFilter filter, @Nullable String broadcastPermission, @Nullable Handler scheduler); /** * @hide * Same as {@link #registerReceiver(BroadcastReceiver, IntentFilter, String, Handler, int) * but for a specific user. This receiver will receiver broadcasts that * are sent to the requested user. * * @param receiver The BroadcastReceiver to handle the broadcast. * @param user UserHandle to send the intent to. * @param filter Selects the Intent broadcasts to be received. * @param broadcastPermission String naming a permissions that a * broadcaster must hold in order to send an Intent to you. If null, * no permission is required. * @param scheduler Handler identifying the thread that will receive * the Intent. If null, the main thread of the process will be used. * @param flags Additional options for the receiver. As of * {@link android.os.Build.VERSION_CODES#TIRAMISU}, either {@link #RECEIVER_EXPORTED} or * {@link #RECEIVER_NOT_EXPORTED} must be specified if the receiver isn't being * registered for protected broadcasts * * @return The first sticky intent found that matches <var>filter</var>, * or null if there are none. * * @see #registerReceiver(BroadcastReceiver, IntentFilter, String, Handler, int) * @see #sendBroadcast * @see #unregisterReceiver */ @SuppressWarnings("HiddenAbstractMethod") @SuppressLint("IntentBuilderName") @Nullable @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) @UnsupportedAppUsage public abstract Intent registerReceiverAsUser(BroadcastReceiver receiver, UserHandle user, IntentFilter filter, @Nullable String broadcastPermission, @Nullable Handler scheduler, @RegisterReceiverFlags int flags); /** * Unregister a previously registered BroadcastReceiver. <em>All</em> * filters that have been registered for this BroadcastReceiver will be Loading
core/java/android/content/ContextWrapper.java +23 −3 Original line number Diff line number Diff line Loading @@ -730,16 +730,36 @@ public class ContextWrapper extends Context { scheduler); } /** @hide */ @Override @Nullable public Intent registerReceiverForAllUsers(@Nullable BroadcastReceiver receiver, @NonNull IntentFilter filter, @Nullable String broadcastPermission, @Nullable Handler scheduler, int flags) { return mBase.registerReceiverForAllUsers(receiver, filter, broadcastPermission, scheduler, flags); } /** @hide */ @Override @UnsupportedAppUsage public Intent registerReceiverAsUser( BroadcastReceiver receiver, UserHandle user, IntentFilter filter, String broadcastPermission, Handler scheduler) { public Intent registerReceiverAsUser(@Nullable BroadcastReceiver receiver, UserHandle user, IntentFilter filter, @Nullable String broadcastPermission, @Nullable Handler scheduler) { return mBase.registerReceiverAsUser(receiver, user, filter, broadcastPermission, scheduler); } /** @hide */ @Override @UnsupportedAppUsage public Intent registerReceiverAsUser(@Nullable BroadcastReceiver receiver, UserHandle user, IntentFilter filter, @Nullable String broadcastPermission, @Nullable Handler scheduler, int flags) { return mBase.registerReceiverAsUser(receiver, user, filter, broadcastPermission, scheduler, flags); } @Override public void unregisterReceiver(BroadcastReceiver receiver) { mBase.unregisterReceiver(receiver); Loading