Loading core/api/current.txt +4 −0 Original line number Diff line number Diff line Loading @@ -6189,7 +6189,11 @@ package android.app { method public android.content.IntentSender getIntentSender(); method public static android.app.PendingIntent getService(android.content.Context, int, @NonNull android.content.Intent, int); method @Deprecated public String getTargetPackage(); method public boolean isActivity(); method public boolean isBroadcast(); method public boolean isForegroundService(); method public boolean isImmutable(); method public boolean isService(); method @Nullable public static android.app.PendingIntent readPendingIntentOrNullFromParcel(@NonNull android.os.Parcel); method public void send() throws android.app.PendingIntent.CanceledException; method public void send(int) throws android.app.PendingIntent.CanceledException; core/api/module-lib-current.txt +12 −0 Original line number Diff line number Diff line // Signature format: 2.0 package android { public static final class Manifest.permission { field public static final String GET_INTENT_SENDER_INTENT = "android.permission.GET_INTENT_SENDER_INTENT"; } } package android.app { public class ActivityManager { Loading Loading @@ -26,6 +34,10 @@ package android.app { field public static final String ACTION_NOTIFICATION_LISTENER_ENABLED_CHANGED = "android.app.action.NOTIFICATION_LISTENER_ENABLED_CHANGED"; } public final class PendingIntent implements android.os.Parcelable { method @Nullable @RequiresPermission(android.Manifest.permission.GET_INTENT_SENDER_INTENT) public java.util.List<android.content.pm.ResolveInfo> queryIntentComponents(int); } public class StatusBarManager { method @RequiresPermission(android.Manifest.permission.STATUS_BAR) public void setExpansionDisabledForSimNetworkLock(boolean); } Loading core/java/android/app/IActivityManager.aidl +6 −0 Original line number Diff line number Diff line Loading @@ -51,6 +51,7 @@ import android.content.pm.ConfigurationInfo; import android.content.pm.IPackageDataObserver; import android.content.pm.ParceledListSlice; import android.content.pm.ProviderInfo; import android.content.pm.ResolveInfo; import android.content.pm.UserInfo; import android.content.res.Configuration; import android.content.LocusId; Loading Loading @@ -704,4 +705,9 @@ interface IActivityManager { * @throws IllegalArgumentException if the user is not a profile. */ boolean stopProfile(int userId); /** Called by PendingIntent.queryIntentComponents() */ List<ResolveInfo> queryIntentComponentsForIntentSender(in IIntentSender sender, int matchFlags); boolean isIntentSenderAService(in IIntentSender sender); } core/java/android/app/PendingIntent.java +45 −7 Original line number Diff line number Diff line Loading @@ -16,9 +16,13 @@ package android.app; import android.Manifest.permission; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.annotation.SystemApi.Client; import android.annotation.TestApi; import android.compat.Compatibility; import android.compat.annotation.ChangeId; Loading @@ -29,6 +33,8 @@ import android.content.IIntentReceiver; import android.content.IIntentSender; import android.content.Intent; import android.content.IntentSender; import android.content.pm.PackageManager.ResolveInfoFlags; import android.content.pm.ResolveInfo; import android.os.Build; import android.os.Bundle; import android.os.Handler; Loading @@ -47,6 +53,7 @@ import com.android.internal.os.IResultReceiver; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.List; /** * A description of an Intent and target action to perform with it. Instances Loading Loading @@ -1181,10 +1188,9 @@ public final class PendingIntent implements Parcelable { } /** * @hide * Check whether this PendingIntent will launch an Activity. * @return TRUE if this {@link PendingIntent} was created with * {@link #getActivity} or {@link #getActivities}. */ @UnsupportedAppUsage public boolean isActivity() { try { return ActivityManager.getService() Loading @@ -1195,8 +1201,7 @@ public final class PendingIntent implements Parcelable { } /** * @hide * Check whether this PendingIntent will launch a foreground service * @return TRUE if this {@link PendingIntent} was created with {@link #getForegroundService}. */ public boolean isForegroundService() { try { Loading @@ -1208,8 +1213,19 @@ public final class PendingIntent implements Parcelable { } /** * @hide * Check whether this PendingIntent will launch an Activity. * @return TRUE if this {@link PendingIntent} was created with {@link #getService}. */ public boolean isService() { try { return ActivityManager.getService() .isIntentSenderAService(mTarget); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * @return TRUE if this {@link PendingIntent} was created with {@link #getBroadcast}. */ public boolean isBroadcast() { try { Loading Loading @@ -1248,6 +1264,28 @@ public final class PendingIntent implements Parcelable { } } /** * Resolve the intent set in this {@link PendingIntent}. Note if the pending intent is * generated for another user, the resulting component may not exist on the calling user. * Use {@link android.content.pm.ApplicationInfo#uid} of the resulting * {@link android.content.pm.ComponentInfo} with * {@link android.os.UserHandle#getUserHandleForUid(int)} to see which user will receive * the intent. * * @param flags MATCH_* flags from {@link android.content.pm.PackageManager}. * @hide */ @RequiresPermission(permission.GET_INTENT_SENDER_INTENT) @SystemApi(client = Client.MODULE_LIBRARIES) public @Nullable List<ResolveInfo> queryIntentComponents(@ResolveInfoFlags int flags) { try { return ActivityManager.getService() .queryIntentComponentsForIntentSender(mTarget, flags); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * Comparison operator on two PendingIntent objects, such that true * is returned then they both represent the same operation from the Loading core/res/AndroidManifest.xml +3 −2 Original line number Diff line number Diff line Loading @@ -2666,8 +2666,9 @@ <permission android:name="android.permission.GET_PROCESS_STATE_AND_OOM_SCORE" android:protectionLevel="signature|privileged|development" /> <!-- Allows use of PendingIntent.getIntent(). @hide --> <!-- Allows use of PendingIntent.getIntent(), . @hide @SystemApi(client=android.annotation.SystemApi.Client.MODULE_LIBRARIES) --> <permission android:name="android.permission.GET_INTENT_SENDER_INTENT" android:protectionLevel="signature" /> Loading Loading
core/api/current.txt +4 −0 Original line number Diff line number Diff line Loading @@ -6189,7 +6189,11 @@ package android.app { method public android.content.IntentSender getIntentSender(); method public static android.app.PendingIntent getService(android.content.Context, int, @NonNull android.content.Intent, int); method @Deprecated public String getTargetPackage(); method public boolean isActivity(); method public boolean isBroadcast(); method public boolean isForegroundService(); method public boolean isImmutable(); method public boolean isService(); method @Nullable public static android.app.PendingIntent readPendingIntentOrNullFromParcel(@NonNull android.os.Parcel); method public void send() throws android.app.PendingIntent.CanceledException; method public void send(int) throws android.app.PendingIntent.CanceledException;
core/api/module-lib-current.txt +12 −0 Original line number Diff line number Diff line // Signature format: 2.0 package android { public static final class Manifest.permission { field public static final String GET_INTENT_SENDER_INTENT = "android.permission.GET_INTENT_SENDER_INTENT"; } } package android.app { public class ActivityManager { Loading Loading @@ -26,6 +34,10 @@ package android.app { field public static final String ACTION_NOTIFICATION_LISTENER_ENABLED_CHANGED = "android.app.action.NOTIFICATION_LISTENER_ENABLED_CHANGED"; } public final class PendingIntent implements android.os.Parcelable { method @Nullable @RequiresPermission(android.Manifest.permission.GET_INTENT_SENDER_INTENT) public java.util.List<android.content.pm.ResolveInfo> queryIntentComponents(int); } public class StatusBarManager { method @RequiresPermission(android.Manifest.permission.STATUS_BAR) public void setExpansionDisabledForSimNetworkLock(boolean); } Loading
core/java/android/app/IActivityManager.aidl +6 −0 Original line number Diff line number Diff line Loading @@ -51,6 +51,7 @@ import android.content.pm.ConfigurationInfo; import android.content.pm.IPackageDataObserver; import android.content.pm.ParceledListSlice; import android.content.pm.ProviderInfo; import android.content.pm.ResolveInfo; import android.content.pm.UserInfo; import android.content.res.Configuration; import android.content.LocusId; Loading Loading @@ -704,4 +705,9 @@ interface IActivityManager { * @throws IllegalArgumentException if the user is not a profile. */ boolean stopProfile(int userId); /** Called by PendingIntent.queryIntentComponents() */ List<ResolveInfo> queryIntentComponentsForIntentSender(in IIntentSender sender, int matchFlags); boolean isIntentSenderAService(in IIntentSender sender); }
core/java/android/app/PendingIntent.java +45 −7 Original line number Diff line number Diff line Loading @@ -16,9 +16,13 @@ package android.app; import android.Manifest.permission; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.annotation.SystemApi.Client; import android.annotation.TestApi; import android.compat.Compatibility; import android.compat.annotation.ChangeId; Loading @@ -29,6 +33,8 @@ import android.content.IIntentReceiver; import android.content.IIntentSender; import android.content.Intent; import android.content.IntentSender; import android.content.pm.PackageManager.ResolveInfoFlags; import android.content.pm.ResolveInfo; import android.os.Build; import android.os.Bundle; import android.os.Handler; Loading @@ -47,6 +53,7 @@ import com.android.internal.os.IResultReceiver; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.List; /** * A description of an Intent and target action to perform with it. Instances Loading Loading @@ -1181,10 +1188,9 @@ public final class PendingIntent implements Parcelable { } /** * @hide * Check whether this PendingIntent will launch an Activity. * @return TRUE if this {@link PendingIntent} was created with * {@link #getActivity} or {@link #getActivities}. */ @UnsupportedAppUsage public boolean isActivity() { try { return ActivityManager.getService() Loading @@ -1195,8 +1201,7 @@ public final class PendingIntent implements Parcelable { } /** * @hide * Check whether this PendingIntent will launch a foreground service * @return TRUE if this {@link PendingIntent} was created with {@link #getForegroundService}. */ public boolean isForegroundService() { try { Loading @@ -1208,8 +1213,19 @@ public final class PendingIntent implements Parcelable { } /** * @hide * Check whether this PendingIntent will launch an Activity. * @return TRUE if this {@link PendingIntent} was created with {@link #getService}. */ public boolean isService() { try { return ActivityManager.getService() .isIntentSenderAService(mTarget); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * @return TRUE if this {@link PendingIntent} was created with {@link #getBroadcast}. */ public boolean isBroadcast() { try { Loading Loading @@ -1248,6 +1264,28 @@ public final class PendingIntent implements Parcelable { } } /** * Resolve the intent set in this {@link PendingIntent}. Note if the pending intent is * generated for another user, the resulting component may not exist on the calling user. * Use {@link android.content.pm.ApplicationInfo#uid} of the resulting * {@link android.content.pm.ComponentInfo} with * {@link android.os.UserHandle#getUserHandleForUid(int)} to see which user will receive * the intent. * * @param flags MATCH_* flags from {@link android.content.pm.PackageManager}. * @hide */ @RequiresPermission(permission.GET_INTENT_SENDER_INTENT) @SystemApi(client = Client.MODULE_LIBRARIES) public @Nullable List<ResolveInfo> queryIntentComponents(@ResolveInfoFlags int flags) { try { return ActivityManager.getService() .queryIntentComponentsForIntentSender(mTarget, flags); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * Comparison operator on two PendingIntent objects, such that true * is returned then they both represent the same operation from the Loading
core/res/AndroidManifest.xml +3 −2 Original line number Diff line number Diff line Loading @@ -2666,8 +2666,9 @@ <permission android:name="android.permission.GET_PROCESS_STATE_AND_OOM_SCORE" android:protectionLevel="signature|privileged|development" /> <!-- Allows use of PendingIntent.getIntent(). @hide --> <!-- Allows use of PendingIntent.getIntent(), . @hide @SystemApi(client=android.annotation.SystemApi.Client.MODULE_LIBRARIES) --> <permission android:name="android.permission.GET_INTENT_SENDER_INTENT" android:protectionLevel="signature" /> Loading