BroadcastOptions

public class BroadcastOptions
extends Object

java.lang.Object
   ↳ android.app.BroadcastOptions


Helper class for building an options Bundle that can be used with Context.sendBroadcast(Intent) and related methods.

Summary

Constants

int DEFERRAL_POLICY_DEFAULT

Deferral policy that indicates no desire has been expressed, and that the system should use a reasonable default behavior.

int DEFERRAL_POLICY_NONE

Deferral policy that indicates a strong desire that no receiver of this broadcast should be deferred.

int DEFERRAL_POLICY_UNTIL_ACTIVE

Deferral policy that indicates a strong desire that each receiver of this broadcast should be deferred until that receiver's process is in an active (non-cached) state.

int DELIVERY_GROUP_POLICY_ALL

Delivery group policy that indicates that all the broadcasts in the delivery group need to be delivered as is.

int DELIVERY_GROUP_POLICY_MOST_RECENT

Delivery group policy that indicates that only the most recent broadcast in the delivery group need to be delivered and the rest can be dropped.

Public methods

void clearDeferralPolicy()

Clears any deferral policy for this broadcast that specifies how this broadcast can be deferred for delivery at some future point.

void clearDeliveryGroupMatchingKey()

Clears the namespace and key that was previously set using setDeliveryGroupMatchingKey(java.lang.String, java.lang.String).

void clearDeliveryGroupPolicy()

Clears any previously set delivery group policies using setDeliveryGroupMatchingKey(java.lang.String, java.lang.String) and resets the delivery group policy to the default value (DELIVERY_GROUP_POLICY_ALL).

static BroadcastOptions fromBundle(Bundle options)

Returns a BroadcastOptions parsed from the given Bundle, typically generated from toBundle().

int getDeferralPolicy()

Gets deferral policy for this broadcast that specifies how this broadcast can be deferred for delivery at some future point.

String getDeliveryGroupMatchingKey()

Return the namespace and key that is used to identify the delivery group that this broadcast belongs to.

int getDeliveryGroupPolicy()

Get the delivery group policy for this broadcast that specifies how multiple broadcasts belonging to the same delivery group has to be handled.

boolean isShareIdentityEnabled()

Returns whether the broadcasting app has opted-in to sharing its identity with the receiver.

static BroadcastOptions makeBasic()

Creates a basic BroadcastOptions with no options initially set.

BroadcastOptions setDeferralPolicy(int deferralPolicy)

Sets deferral policy for this broadcast that specifies how this broadcast can be deferred for delivery at some future point.

BroadcastOptions setDeliveryGroupMatchingKey(String namespace, String key)

Set namespace and key to identify the delivery group that this broadcast belongs to.

BroadcastOptions setDeliveryGroupPolicy(int policy)

Set delivery group policy for this broadcast to specify how multiple broadcasts belonging to the same delivery group has to be handled.

BroadcastOptions setShareIdentityEnabled(boolean shareIdentityEnabled)

Sets whether the identity of the broadcasting app should be shared with all receivers that will receive this broadcast.

Bundle toBundle()

Returns the created options as a Bundle, which can be passed to Context.sendBroadcast(Intent) and related methods.

Inherited methods

Constants

DEFERRAL_POLICY_DEFAULT

Added in API level 34
public static final int DEFERRAL_POLICY_DEFAULT

Deferral policy that indicates no desire has been expressed, and that the system should use a reasonable default behavior.

Constant Value: 0 (0x00000000)

DEFERRAL_POLICY_NONE

Added in API level 34
public static final int DEFERRAL_POLICY_NONE

Deferral policy that indicates a strong desire that no receiver of this broadcast should be deferred.

Constant Value: 1 (0x00000001)

DEFERRAL_POLICY_UNTIL_ACTIVE

Added in API level 34
public static final int DEFERRAL_POLICY_UNTIL_ACTIVE

Deferral policy that indicates a strong desire that each receiver of this broadcast should be deferred until that receiver's process is in an active (non-cached) state. Whether an app's process state is considered active is independent of its standby bucket.

This policy only applies to runtime registered receivers of a broadcast, and does not apply to ordered broadcasts, alarm broadcasts, interactive broadcasts, or manifest broadcasts.

This policy means that a runtime registered receiver will not typically execute until that receiver's process is brought to an active state by some other action, such as a job, alarm, or service binding. As a result, the receiver may be delayed indefinitely.

When this policy is set on an unordered broadcast with a completion callback, the completion callback will run once all eligible processes have finished receiving the broadcast. Processes in inactive process state are not considered eligible and may not receive the broadcast prior to the completion callback.

Constant Value: 2 (0x00000002)

DELIVERY_GROUP_POLICY_ALL

Added in API level 34
public static final int DELIVERY_GROUP_POLICY_ALL

Delivery group policy that indicates that all the broadcasts in the delivery group need to be delivered as is.

Constant Value: 0 (0x00000000)

DELIVERY_GROUP_POLICY_MOST_RECENT

Added in API level 34
public static final int DELIVERY_GROUP_POLICY_MOST_RECENT

Delivery group policy that indicates that only the most recent broadcast in the delivery group need to be delivered and the rest can be dropped.

Constant Value: 1 (0x00000001)

Public methods

clearDeferralPolicy

Added in API level 34
public void clearDeferralPolicy ()

Clears any deferral policy for this broadcast that specifies how this broadcast can be deferred for delivery at some future point.

clearDeliveryGroupMatchingKey

Added in API level 34
public void clearDeliveryGroupMatchingKey ()

Clears the namespace and key that was previously set using setDeliveryGroupMatchingKey(java.lang.String, java.lang.String).

clearDeliveryGroupPolicy

Added in API level 34
public void clearDeliveryGroupPolicy ()

Clears any previously set delivery group policies using setDeliveryGroupMatchingKey(java.lang.String, java.lang.String) and resets the delivery group policy to the default value (DELIVERY_GROUP_POLICY_ALL).

fromBundle

Added in API level 34
public static BroadcastOptions fromBundle (Bundle options)

Returns a BroadcastOptions parsed from the given Bundle, typically generated from toBundle().

Parameters
options Bundle: This value cannot be null.

Returns
BroadcastOptions This value cannot be null.

getDeferralPolicy

Added in API level 34
public int getDeferralPolicy ()

Gets deferral policy for this broadcast that specifies how this broadcast can be deferred for delivery at some future point.

Returns
int Value is DEFERRAL_POLICY_DEFAULT, DEFERRAL_POLICY_NONE, or DEFERRAL_POLICY_UNTIL_ACTIVE

getDeliveryGroupMatchingKey

Added in API level 34
public String getDeliveryGroupMatchingKey ()

Return the namespace and key that is used to identify the delivery group that this broadcast belongs to.

Returns
String the delivery group namespace and key that was previously set using setDeliveryGroupMatchingKey(java.lang.String, java.lang.String), concatenated with a :. This value may be null.

getDeliveryGroupPolicy

Added in API level 34
public int getDeliveryGroupPolicy ()

Get the delivery group policy for this broadcast that specifies how multiple broadcasts belonging to the same delivery group has to be handled.

Returns
int Value is DELIVERY_GROUP_POLICY_ALL, DELIVERY_GROUP_POLICY_MOST_RECENT, or android.app.BroadcastOptions.DELIVERY_GROUP_POLICY_MERGED

isShareIdentityEnabled

Added in API level 34
public boolean isShareIdentityEnabled ()

Returns whether the broadcasting app has opted-in to sharing its identity with the receiver.

Returns
boolean true if the broadcasting app has opted in to sharing its identity

makeBasic

Added in API level 34
public static BroadcastOptions makeBasic ()

Creates a basic BroadcastOptions with no options initially set.

Returns
BroadcastOptions an instance of BroadcastOptions against which options can be set This value cannot be null.

setDeferralPolicy

Added in API level 34
public BroadcastOptions setDeferralPolicy (int deferralPolicy)

Sets deferral policy for this broadcast that specifies how this broadcast can be deferred for delivery at some future point.

Parameters
deferralPolicy int: Value is DEFERRAL_POLICY_DEFAULT, DEFERRAL_POLICY_NONE, or DEFERRAL_POLICY_UNTIL_ACTIVE

Returns
BroadcastOptions This value cannot be null.

setDeliveryGroupMatchingKey

Added in API level 34
public BroadcastOptions setDeliveryGroupMatchingKey (String namespace, 
                String key)

Set namespace and key to identify the delivery group that this broadcast belongs to.

If namespace and key are specified, then another broadcast will be considered to be in the same delivery group as this iff it has the same namespace and key.

If not matching key using this API then by default Intent#filterEquals(Intent) will be used to identify the delivery group.

Parameters
namespace String: This value cannot be null.

key String: This value cannot be null.

Returns
BroadcastOptions This value cannot be null.

setDeliveryGroupPolicy

Added in API level 34
public BroadcastOptions setDeliveryGroupPolicy (int policy)

Set delivery group policy for this broadcast to specify how multiple broadcasts belonging to the same delivery group has to be handled.

Parameters
policy int: Value is DELIVERY_GROUP_POLICY_ALL, DELIVERY_GROUP_POLICY_MOST_RECENT, or android.app.BroadcastOptions.DELIVERY_GROUP_POLICY_MERGED

Returns
BroadcastOptions This value cannot be null.

setShareIdentityEnabled

Added in API level 34
public BroadcastOptions setShareIdentityEnabled (boolean shareIdentityEnabled)

Sets whether the identity of the broadcasting app should be shared with all receivers that will receive this broadcast.

Use this option when broadcasting to a receiver that needs to know the identity of the broadcaster; with this set to true, the receiver will have access to the broadcasting app's package name and uid.

Defaults to false if not set.

Parameters
shareIdentityEnabled boolean: whether the broadcasting app's identity should be shared with the receiver

Returns
BroadcastOptions this BroadcastOptions instance This value cannot be null.

toBundle

Added in API level 34
public Bundle toBundle ()

Returns the created options as a Bundle, which can be passed to Context.sendBroadcast(Intent) and related methods. Note that the returned Bundle is still owned by the BroadcastOptions object; you must not modify it, but can supply it to the sendBroadcast methods that take an options Bundle.

Returns
Bundle This value cannot be null.

Throws
IllegalStateException if the broadcast option values are inconsistent. For example, if the delivery group policy is specified as "MERGED" but no extras merger is supplied.