Loading api/system-current.txt +5 −0 Original line number Diff line number Diff line Loading @@ -1371,6 +1371,10 @@ package android.bluetooth.le { package android.content { public abstract class BroadcastReceiver { method @NonNull public final android.os.UserHandle getSendingUser(); } public class ContentProviderClient implements java.lang.AutoCloseable { method @RequiresPermission(android.Manifest.permission.REMOVE_TASKS) public void setDetectNotResponding(long); } Loading @@ -1387,6 +1391,7 @@ package android.content { method @NonNull public android.content.Context createPackageContextAsUser(@NonNull String, int, @NonNull android.os.UserHandle) throws android.content.pm.PackageManager.NameNotFoundException; 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 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 @@ -126,6 +126,13 @@ class ReceiverRestrictedContext extends ContextWrapper { } } @Override public Intent registerReceiverForAllUsers(BroadcastReceiver receiver, IntentFilter filter, String broadcastPermission, Handler scheduler) { return registerReceiverAsUser( receiver, UserHandle.ALL, filter, broadcastPermission, scheduler); } @Override public Intent registerReceiverAsUser(BroadcastReceiver receiver, UserHandle user, IntentFilter filter, String broadcastPermission, Handler scheduler) { Loading Loading @@ -1519,6 +1526,13 @@ class ContextImpl extends Context { filter, broadcastPermission, scheduler, getOuterContext(), flags); } @Override public Intent registerReceiverForAllUsers(BroadcastReceiver receiver, IntentFilter filter, String broadcastPermission, Handler scheduler) { return registerReceiverAsUser(receiver, UserHandle.ALL, filter, broadcastPermission, scheduler); } @Override public Intent registerReceiverAsUser(BroadcastReceiver receiver, UserHandle user, IntentFilter filter, String broadcastPermission, Handler scheduler) { Loading core/java/android/content/BroadcastReceiver.java +17 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package android.content; import android.annotation.NonNull; import android.annotation.SystemApi; import android.annotation.UnsupportedAppUsage; import android.app.ActivityManager; import android.app.ActivityThread; Loading @@ -25,6 +27,7 @@ import android.os.Build; import android.os.Bundle; import android.os.IBinder; import android.os.RemoteException; import android.os.UserHandle; import android.util.Log; import android.util.Slog; Loading Loading @@ -623,6 +626,20 @@ public abstract class BroadcastReceiver { return mPendingResult; } /** * Returns the user that the broadcast was sent to. * * <p>It can be used in a receiver registered by * {@link Context#registerReceiverForAllUsers Context.registerReceiverForAllUsers()} * to determine on which user the broadcast was sent. * * @hide */ @SystemApi public final @NonNull UserHandle getSendingUser() { return UserHandle.of(getSendingUserId()); } /** @hide */ public int getSendingUserId() { return mPendingResult.mSendingUser; Loading core/java/android/content/Context.java +31 −0 Original line number Diff line number Diff line Loading @@ -2794,6 +2794,37 @@ public abstract class Context { IntentFilter filter, @Nullable String broadcastPermission, @Nullable Handler scheduler, @RegisterReceiverFlags int flags); /** * Same as {@link #registerReceiver(BroadcastReceiver, IntentFilter, String, Handler)} * 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. * * @return The first sticky intent found that matches <var>filter</var>, * or {@code null} if there are none. * * @see #registerReceiver(BroadcastReceiver, IntentFilter, String, Handler) * @see #sendBroadcast * @see #unregisterReceiver * @hide */ @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) { throw new RuntimeException("Not implemented. Must override in a subclass."); } /** * @hide * Same as {@link #registerReceiver(BroadcastReceiver, IntentFilter, String, Handler) Loading core/java/android/content/ContextWrapper.java +11 −0 Original line number Diff line number Diff line Loading @@ -662,6 +662,17 @@ public class ContextWrapper extends Context { scheduler, flags); } /** @hide */ @Override @Nullable @SystemApi public Intent registerReceiverForAllUsers(@Nullable BroadcastReceiver receiver, @NonNull IntentFilter filter, @Nullable String broadcastPermission, @Nullable Handler scheduler) { return mBase.registerReceiverForAllUsers(receiver, filter, broadcastPermission, scheduler); } /** @hide */ @Override @UnsupportedAppUsage Loading Loading
api/system-current.txt +5 −0 Original line number Diff line number Diff line Loading @@ -1371,6 +1371,10 @@ package android.bluetooth.le { package android.content { public abstract class BroadcastReceiver { method @NonNull public final android.os.UserHandle getSendingUser(); } public class ContentProviderClient implements java.lang.AutoCloseable { method @RequiresPermission(android.Manifest.permission.REMOVE_TASKS) public void setDetectNotResponding(long); } Loading @@ -1387,6 +1391,7 @@ package android.content { method @NonNull public android.content.Context createPackageContextAsUser(@NonNull String, int, @NonNull android.os.UserHandle) throws android.content.pm.PackageManager.NameNotFoundException; 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 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 @@ -126,6 +126,13 @@ class ReceiverRestrictedContext extends ContextWrapper { } } @Override public Intent registerReceiverForAllUsers(BroadcastReceiver receiver, IntentFilter filter, String broadcastPermission, Handler scheduler) { return registerReceiverAsUser( receiver, UserHandle.ALL, filter, broadcastPermission, scheduler); } @Override public Intent registerReceiverAsUser(BroadcastReceiver receiver, UserHandle user, IntentFilter filter, String broadcastPermission, Handler scheduler) { Loading Loading @@ -1519,6 +1526,13 @@ class ContextImpl extends Context { filter, broadcastPermission, scheduler, getOuterContext(), flags); } @Override public Intent registerReceiverForAllUsers(BroadcastReceiver receiver, IntentFilter filter, String broadcastPermission, Handler scheduler) { return registerReceiverAsUser(receiver, UserHandle.ALL, filter, broadcastPermission, scheduler); } @Override public Intent registerReceiverAsUser(BroadcastReceiver receiver, UserHandle user, IntentFilter filter, String broadcastPermission, Handler scheduler) { Loading
core/java/android/content/BroadcastReceiver.java +17 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package android.content; import android.annotation.NonNull; import android.annotation.SystemApi; import android.annotation.UnsupportedAppUsage; import android.app.ActivityManager; import android.app.ActivityThread; Loading @@ -25,6 +27,7 @@ import android.os.Build; import android.os.Bundle; import android.os.IBinder; import android.os.RemoteException; import android.os.UserHandle; import android.util.Log; import android.util.Slog; Loading Loading @@ -623,6 +626,20 @@ public abstract class BroadcastReceiver { return mPendingResult; } /** * Returns the user that the broadcast was sent to. * * <p>It can be used in a receiver registered by * {@link Context#registerReceiverForAllUsers Context.registerReceiverForAllUsers()} * to determine on which user the broadcast was sent. * * @hide */ @SystemApi public final @NonNull UserHandle getSendingUser() { return UserHandle.of(getSendingUserId()); } /** @hide */ public int getSendingUserId() { return mPendingResult.mSendingUser; Loading
core/java/android/content/Context.java +31 −0 Original line number Diff line number Diff line Loading @@ -2794,6 +2794,37 @@ public abstract class Context { IntentFilter filter, @Nullable String broadcastPermission, @Nullable Handler scheduler, @RegisterReceiverFlags int flags); /** * Same as {@link #registerReceiver(BroadcastReceiver, IntentFilter, String, Handler)} * 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. * * @return The first sticky intent found that matches <var>filter</var>, * or {@code null} if there are none. * * @see #registerReceiver(BroadcastReceiver, IntentFilter, String, Handler) * @see #sendBroadcast * @see #unregisterReceiver * @hide */ @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) { throw new RuntimeException("Not implemented. Must override in a subclass."); } /** * @hide * Same as {@link #registerReceiver(BroadcastReceiver, IntentFilter, String, Handler) Loading
core/java/android/content/ContextWrapper.java +11 −0 Original line number Diff line number Diff line Loading @@ -662,6 +662,17 @@ public class ContextWrapper extends Context { scheduler, flags); } /** @hide */ @Override @Nullable @SystemApi public Intent registerReceiverForAllUsers(@Nullable BroadcastReceiver receiver, @NonNull IntentFilter filter, @Nullable String broadcastPermission, @Nullable Handler scheduler) { return mBase.registerReceiverForAllUsers(receiver, filter, broadcastPermission, scheduler); } /** @hide */ @Override @UnsupportedAppUsage Loading