ShareCompat.IntentReader

Added in 1.1.0

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

Create an IntentReader for parsing and interpreting the sharing intent used to start the given activity.

IntentReader(context: Context, intent: Intent)

Create an IntentReader for parsing and interpreting the given sharing intent.

Public functions

java-static ShareCompat.IntentReader
from(activity: Activity)

This function is deprecated.

Use the constructor of IntentReader instead

ComponentName?

Get the ComponentName of the Activity that invoked this sharing intent.

Drawable?

Get the icon of the calling activity as a Drawable if data about the calling activity is available.

Drawable?

Get the icon of the calling application as a Drawable if data about the calling package is available.

CharSequence?

Get the human-readable label (title) of the calling application if data about the calling package is available.

String?

Get the name of the package that invoked this sharing intent.

Array<String!>?

Get an array of Strings, each an email address to BCC on this share.

Array<String!>?

Get an array of Strings, each an email address to CC on this share.

Array<String!>?

Get an array of Strings, each an email address to share to.

String?

Get the styled HTML text shared with the target activity.

Uri?

Get a URI referring to a data stream shared with the target activity.

Uri?
getStream(index: Int)

Get the URI of a stream item shared with the target activity.

Int

Return the number of stream items shared.

String?

Get a subject heading for this share; useful when sharing via email.

CharSequence?

Get the literal text shared with the target activity.

String?

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 ACTION_SEND_MULTIPLE intent.

Boolean

Returns true if the activity this reader was obtained for was started with an ACTION_SEND or ACTION_SEND_MULTIPLE sharing Intent.

Boolean

Returns true if the activity this reader was obtained for was started with an ACTION_SEND intent and contains a single shared item.

Public constructors

IntentReader

Added in 1.5.0
IntentReader(activity: Activity)

Create an IntentReader for parsing and interpreting the sharing intent used to start the given activity.

Parameters
activity: Activity

Activity that was started to share content

IntentReader

Added in 1.5.0
IntentReader(context: Context, intent: Intent)

Create an IntentReader for parsing and interpreting the given sharing intent.

Parameters
context: Context

Context that was started to share content

intent: Intent

Intent that was used to start the context

Public functions

from

Added in 1.1.0
Deprecated in 1.5.0
java-static fun from(activity: Activity): ShareCompat.IntentReader

Get an IntentReader for parsing and interpreting the sharing intent used to start the given activity.

Parameters
activity: Activity

Activity that was started to share content

Returns
ShareCompat.IntentReader

IntentReader for parsing sharing data

getCallingActivity

Added in 1.1.0
fun getCallingActivity(): ComponentName?

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
ComponentName?

ComponentName of the calling Activity or null if unknown

getCallingActivityIcon

Added in 1.1.0
fun getCallingActivityIcon(): Drawable?

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.

Returns
Drawable?

The calling Activity's icon or null if unknown

getCallingApplicationIcon

Added in 1.1.0
fun getCallingApplicationIcon(): Drawable?

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.

Returns
Drawable?

The calling application's icon or null if unknown

getCallingApplicationLabel

Added in 1.1.0
fun getCallingApplicationLabel(): CharSequence?

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
CharSequence?

The calling application's label or null if unknown

getCallingPackage

Added in 1.1.0
fun getCallingPackage(): String?

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.

Returns
String?

Name of the package that started this activity or null if unknown

getEmailBcc

Added in 1.1.0
fun getEmailBcc(): Array<String!>?

Get an array of Strings, each an email address to BCC on this share.

Returns
Array<String!>?

An array of email addresses or null if none were supplied.

See also
EXTRA_BCC

getEmailCc

Added in 1.1.0
fun getEmailCc(): Array<String!>?

Get an array of Strings, each an email address to CC on this share.

Returns
Array<String!>?

An array of email addresses or null if none were supplied.

See also
EXTRA_CC

getEmailTo

Added in 1.1.0
fun getEmailTo(): Array<String!>?

Get an array of Strings, each an email address to share to.

Returns
Array<String!>?

An array of email addresses or null if none were supplied.

See also
EXTRA_EMAIL

getHtmlText

Added in 1.1.0
fun getHtmlText(): String?

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.

Returns
String?

Styled text provided by the sender as HTML.

getStream

Added in 1.1.0
fun getStream(): Uri?

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.

Returns
Uri?

A URI referring to a data stream to be shared or null if one was not supplied

See also
EXTRA_STREAM

getStream

Added in 1.1.0
fun getStream(index: Int): Uri?

Get the URI of a stream item shared with the target activity. Index should be in the range [0-getStreamCount()).

Parameters
index: Int

Index of text item to retrieve

Returns
Uri?

Requested stream item URI

getStreamCount

Added in 1.1.0
fun getStreamCount(): Int

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

Added in 1.1.0
fun getSubject(): String?

Get a subject heading for this share; useful when sharing via email.

Returns
String?

The subject heading for this share or null if one was not supplied.

See also
EXTRA_SUBJECT

getText

Added in 1.1.0
fun getText(): CharSequence?

Get the literal text shared with the target activity.

Returns
CharSequence?

Literal shared text or null if none was supplied

See also
EXTRA_TEXT

getType

Added in 1.1.0
fun getType(): String?

Get the mimetype of the data shared to this activity.

Returns
String?

mimetype of the shared data

See also
getType

isMultipleShare

Added in 1.1.0
fun isMultipleShare(): Boolean

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

Added in 1.1.0
fun isShareIntent(): Boolean

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

Added in 1.1.0
fun isSingleShare(): Boolean

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