ShareCompat.IntentReader
public class ShareCompat.IntentReader
IntentReader is a helper for reading the data contained within a sharing (ACTION_SEND) Intent. It provides methods to parse standard elements included with a share in addition to extra metadata about the app that shared the content.
Social sharing apps are encouraged to provide attribution for the app that shared the content. IntentReader offers access to the application label, calling activity info, and application icon of the app that shared the content. This data may have been provided voluntarily by the calling app and should always be displayed to the user before submission for manual verification. The user should be offered the option to omit this information from shared posts if desired.
Activities that intend to receive sharing intents should configure an intent-filter to accept ACTION_SEND intents ("android.intent.action.SEND") and optionally accept ACTION_SEND_MULTIPLE ("android.intent.action.SEND_MULTIPLE") if the activity is equipped to handle multiple data streams.
Summary
Public constructors |
|---|
IntentReader(@NonNull Activity activity)Create an IntentReader for parsing and interpreting the sharing intent used to start the given activity. |
IntentReader(@NonNull Context context, @NonNull Intent intent)Create an IntentReader for parsing and interpreting the given sharing intent. |
Public methods |
|
|---|---|
static @NonNull ShareCompat.IntentReader |
This method is deprecated. Use the constructor of IntentReader instead |
@Nullable ComponentName |
Get the |
@Nullable Drawable |
Get the icon of the calling activity as a Drawable if data about the calling activity is available. |
@Nullable Drawable |
Get the icon of the calling application as a Drawable if data about the calling package is available. |
@Nullable CharSequence |
Get the human-readable label (title) of the calling application if data about the calling package is available. |
@Nullable String |
Get the name of the package that invoked this sharing intent. |
@Nullable String[] |
Get an array of Strings, each an email address to BCC on this share. |
@Nullable String[] |
Get an array of Strings, each an email address to CC on this share. |
@Nullable String[] |
Get an array of Strings, each an email address to share to. |
@Nullable String |
Get the styled HTML text shared with the target activity. |
@Nullable Uri |
Get a URI referring to a data stream shared with the target activity. |
@Nullable Uri |
getStream(int index)Get the URI of a stream item shared with the target activity. |
int |
Return the number of stream items shared. |
@Nullable String |
Get a subject heading for this share; useful when sharing via email. |
@Nullable CharSequence |
getText()Get the literal text shared with the target activity. |
@Nullable String |
getType()Get the mimetype of the data shared to this activity. |
boolean |
Returns true if the activity this reader was obtained for was started with an |
boolean |
Returns true if the activity this reader was obtained for was started with an |
boolean |
Returns true if the activity this reader was obtained for was started with an |
Public constructors
IntentReader
public IntentReader(@NonNull Activity activity)
Create an IntentReader for parsing and interpreting the sharing intent used to start the given activity.
Public methods
public static @NonNull ShareCompat.IntentReaderfrom(@NonNull Activity activity)
Get an IntentReader for parsing and interpreting the sharing intent used to start the given activity.
| Returns | |
|---|---|
@NonNull ShareCompat.IntentReader |
IntentReader for parsing sharing data |
getCallingActivity
public @Nullable ComponentName getCallingActivity()
Get the ComponentName of the Activity that invoked this sharing intent. If the target sharing activity was not started for a result, IntentBuilder will read this from extra metadata placed in the intent by ShareBuilder.
Note: This data may have been provided voluntarily by the calling application. As such it should not be trusted for accuracy in the context of security or verification.
| Returns | |
|---|---|
@Nullable ComponentName |
ComponentName of the calling Activity or null if unknown |
getCallingActivityIcon
public @Nullable Drawable getCallingActivityIcon()
Get the icon of the calling activity as a Drawable if data about the calling activity is available.
Note: This data may have been provided voluntarily by the calling application. As such it should not be trusted for accuracy in the context of security or verification.
getCallingApplicationIcon
public @Nullable Drawable getCallingApplicationIcon()
Get the icon of the calling application as a Drawable if data about the calling package is available.
Note: This data may have been provided voluntarily by the calling application. As such it should not be trusted for accuracy in the context of security or verification.
getCallingApplicationLabel
public @Nullable CharSequence getCallingApplicationLabel()
Get the human-readable label (title) of the calling application if data about the calling package is available.
Note: This data may have been provided voluntarily by the calling application. As such it should not be trusted for accuracy in the context of security or verification.
| Returns | |
|---|---|
@Nullable CharSequence |
The calling application's label or null if unknown |
getCallingPackage
public @Nullable String getCallingPackage()
Get the name of the package that invoked this sharing intent. If the activity was not started for a result, IntentBuilder will read this from extra metadata placed in the Intent by ShareBuilder.
Note: This data may have been provided voluntarily by the calling application. As such it should not be trusted for accuracy in the context of security or verification.
getEmailBcc
public @Nullable String[] getEmailBcc()
Get an array of Strings, each an email address to BCC on this share.
| Returns | |
|---|---|
@Nullable String[] |
An array of email addresses or null if none were supplied. |
| See also | |
|---|---|
EXTRA_BCC |
getEmailCc
public @Nullable String[] getEmailCc()
Get an array of Strings, each an email address to CC on this share.
| Returns | |
|---|---|
@Nullable String[] |
An array of email addresses or null if none were supplied. |
| See also | |
|---|---|
EXTRA_CC |
getEmailTo
public @Nullable String[] getEmailTo()
Get an array of Strings, each an email address to share to.
| Returns | |
|---|---|
@Nullable String[] |
An array of email addresses or null if none were supplied. |
| See also | |
|---|---|
EXTRA_EMAIL |
getHtmlText
public @Nullable String getHtmlText()
Get the styled HTML text shared with the target activity. If no HTML text was supplied but EXTRA_TEXT contained styled text, it will be converted to HTML if possible and returned. If the text provided by EXTRA_TEXT was not styled text, it will be escaped by escapeHtml and returned. If no text was provided at all, this method will return null.
getStream
public @Nullable Uri getStream()
Get a URI referring to a data stream shared with the target activity.
This call will fail if the share intent contains multiple stream items. If isMultipleShare returns true the application should use getStream and getStreamCount to retrieve the included stream items.
| See also | |
|---|---|
EXTRA_STREAM |
getStream
public @Nullable Uri getStream(int index)
Get the URI of a stream item shared with the target activity. Index should be in the range [0-getStreamCount()).
| Parameters | |
|---|---|
int index |
Index of text item to retrieve |
| See also | |
|---|---|
EXTRA_STREAM |
|
ACTION_SEND_MULTIPLE |
getStreamCount
public int getStreamCount()
Return the number of stream items shared. The return value will be 0 or 1 if this was an ACTION_SEND intent, or 0 or more if it was an ACTION_SEND_MULTIPLE intent.
| Returns | |
|---|---|
int |
Count of text items contained within the Intent |
getSubject
public @Nullable String getSubject()
Get a subject heading for this share; useful when sharing via email.
| See also | |
|---|---|
EXTRA_SUBJECT |
getText
public @Nullable CharSequence getText()
Get the literal text shared with the target activity.
| Returns | |
|---|---|
@Nullable CharSequence |
Literal shared text or null if none was supplied |
| See also | |
|---|---|
EXTRA_TEXT |
getType
public @Nullable String getType()
Get the mimetype of the data shared to this activity.
| See also | |
|---|---|
getType |
isMultipleShare
public boolean isMultipleShare()
Returns true if the activity this reader was obtained for was started with an ACTION_SEND_MULTIPLE intent. The Intent may contain more than one stream item.
| Returns | |
|---|---|
boolean |
true if the activity was started with an ACTION_SEND_MULTIPLE intent |
isShareIntent
public boolean isShareIntent()
Returns true if the activity this reader was obtained for was started with an ACTION_SEND or ACTION_SEND_MULTIPLE sharing Intent.
| Returns | |
|---|---|
boolean |
true if the activity was started with an ACTION_SEND or ACTION_SEND_MULTIPLE Intent |
isSingleShare
public boolean isSingleShare()
Returns true if the activity this reader was obtained for was started with an ACTION_SEND intent and contains a single shared item. The shared content should be obtained using either the getText or getStream methods depending on the type of content shared.
| Returns | |
|---|---|
boolean |
true if the activity was started with an ACTION_SEND intent |