android.support.v4.app
Class ShareCompat

java.lang.Object
  extended by android.support.v4.app.ShareCompat

public class ShareCompat
extends Object

Extra helper functionality for sharing data between activities. ShareCompat provides functionality to extend the Intent.ACTION_SEND/ Intent.ACTION_SEND_MULTIPLE protocol and support retrieving more info about the activity that invoked a social sharing action. ShareCompat.IntentBuilder provides helper functions for constructing a sharing intent that always includes data about the calling activity and app. This lets the called activity provide attribution for the app that shared content. Constructing an intent this way can be done in a method-chaining style. To obtain an IntentBuilder with info about your calling activity, use the static method ShareCompat.IntentBuilder.from(Activity). ShareCompat.IntentReader provides helper functions for parsing the defined extras within an Intent.ACTION_SEND or Intent.ACTION_SEND_MULTIPLE intent used to launch an activity. You can also obtain a Drawable for the caller's application icon and the application's localized label (the app's human-readable name). Social apps that enable sharing content are encouraged to use this information to call out the app that the content was shared from.


Nested Class Summary
static class ShareCompat.IntentBuilder
          IntentBuilder is a helper for constructing Intent.ACTION_SEND and Intent.ACTION_SEND_MULTIPLE sharing intents and starting activities to share content.
static class ShareCompat.IntentReader
          IntentReader is a helper for reading the data contained within a sharing (ACTION_SEND) Intent.
 
Field Summary
static String EXTRA_CALLING_ACTIVITY
          Intent extra that stores the ComponentName of the calling activity for an ACTION_SEND intent.
static String EXTRA_CALLING_PACKAGE
          Intent extra that stores the name of the calling package for an ACTION_SEND intent.
 
Constructor Summary
ShareCompat()
           
 
Method Summary
static void configureMenuItem(android.view.Menu menu, int menuItemId, ShareCompat.IntentBuilder shareIntent)
          Configure a menu item to act as a sharing action.
static void configureMenuItem(android.view.MenuItem item, ShareCompat.IntentBuilder shareIntent)
          Configure a MenuItem to act as a sharing action.
static android.content.ComponentName getCallingActivity(android.app.Activity calledActivity)
          Retrieve the ComponentName of the activity that launched calledActivity from a share intent.
static String getCallingPackage(android.app.Activity calledActivity)
          Retrieve the name of the package that launched calledActivity from a share intent.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

EXTRA_CALLING_PACKAGE

public static final String EXTRA_CALLING_PACKAGE
Intent extra that stores the name of the calling package for an ACTION_SEND intent. When an activity is started using startActivityForResult this is redundant info. (It is also provided by Activity.getCallingPackage().) Instead of using this constant directly, consider using getCallingPackage(Activity) or ShareCompat.IntentReader.getCallingPackage().

See Also:
Constant Field Values

EXTRA_CALLING_ACTIVITY

public static final String EXTRA_CALLING_ACTIVITY
Intent extra that stores the ComponentName of the calling activity for an ACTION_SEND intent.

See Also:
Constant Field Values
Constructor Detail

ShareCompat

public ShareCompat()
Method Detail

getCallingPackage

public static String getCallingPackage(android.app.Activity calledActivity)
Retrieve the name of the package that launched calledActivity from a share intent. Apps that provide social sharing functionality can use this to provide attribution for the app that shared the content.

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.

Parameters:
calledActivity - Current activity that was launched to share content
Returns:
Name of the calling package

getCallingActivity

public static android.content.ComponentName getCallingActivity(android.app.Activity calledActivity)
Retrieve the ComponentName of the activity that launched calledActivity from a share intent. Apps that provide social sharing functionality can use this to provide attribution for the app that shared the content.

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.

Parameters:
calledActivity - Current activity that was launched to share content
Returns:
ComponentName of the calling activity

configureMenuItem

public static void configureMenuItem(android.view.MenuItem item,
                                     ShareCompat.IntentBuilder shareIntent)
Configure a MenuItem to act as a sharing action.

If the app is running on API level 14 or higher (Android 4.0/Ice Cream Sandwich) this method will configure a ShareActionProvider to provide a more robust UI for selecting the target of the share. History will be tracked for each calling activity in a file named with the prefix ".sharecompat_" in the application's private data directory. If the application wishes to set this MenuItem to show as an action in the Action Bar it should use MenuItemCompat.setShowAsAction(MenuItem, int) to request that behavior in addition to calling this method.

If the app is running on an older platform version this method will configure a standard activity chooser dialog for the menu item.

During the calling activity's lifecycle, if data within the share intent must change the app should change that state in one of several ways:

Parameters:
item - MenuItem to configure for sharing
shareIntent - IntentBuilder with data about the content to share

configureMenuItem

public static void configureMenuItem(android.view.Menu menu,
                                     int menuItemId,
                                     ShareCompat.IntentBuilder shareIntent)
Configure a menu item to act as a sharing action.

Parameters:
menu - Menu containing the item to use for sharing
menuItemId - ID of the share item within menu
shareIntent - IntentBuilder with data about the content to share
See Also:
configureMenuItem(MenuItem, IntentBuilder)


Copyright © 2013 Marek Kedzierski. All Rights Reserved.