Most visited

Recently visited

ShareCompat

public final class ShareCompat
extends Object

java.lang.Object
   ↳ android.support.v4.app.ShareCompat


用于在活动之间共享数据的额外帮助器功能。 ShareCompat提供的功能来扩展ACTION_SEND / ACTION_SEND_MULTIPLE协议,支持检索有关调用的社会共享行动活动的更多信息。 ShareCompat.IntentBuilder为构建共享意图提供了辅助函数,该共享意图始终包含有关调用活动和应用程序的数据。 这可让被叫活动为共享内容的应用提供归因。 以这种方式构建意图可以通过方法链式来完成。 要获得有关您的呼叫活动信息的IntentBuilder,请使用静态方法from(Activity) ShareCompat.IntentReader提供了用于解析用于启动活动的ACTION_SENDACTION_SEND_MULTIPLE意图中定义的附加功能的帮助功能。 您还可以为调用者的应用程序图标和应用程序的本地化标签(应用程序的人类可读名称)获取Drawable。 我们鼓励支持共享内容的社交应用程序使用此信息来调出共享内容的应用程序。

Summary

Nested classes

class ShareCompat.IntentBuilder

IntentBuilder是构建ACTION_SENDACTION_SEND_MULTIPLE共享意图和开始共享内容的活动的帮手。

class ShareCompat.IntentReader

IntentReader是读取共享(ACTION_SEND)意图中包含的数据的助手。

Constants

String EXTRA_CALLING_ACTIVITY

用于存储ACTION_SEND意图的调用活动的 ComponentName的意图额外内容。

String EXTRA_CALLING_PACKAGE

用于存储ACTION_SEND意图的调用程序包的名称的意图额外。

Public methods

static void configureMenuItem(MenuItem item, ShareCompat.IntentBuilder shareIntent)

MenuItem配置为充当共享操作。

static void configureMenuItem(Menu menu, int menuItemId, ShareCompat.IntentBuilder shareIntent)

配置菜单项以充当共享操作。

static ComponentName getCallingActivity(Activity calledActivity)

从共享意图中检索启动了calledActivity的活动的ComponentName。

static String getCallingPackage(Activity calledActivity)

从共享意图中检索启动了calledActivity的包的名称。

Inherited methods

From class java.lang.Object

Constants

EXTRA_CALLING_ACTIVITY

String EXTRA_CALLING_ACTIVITY

用于存储ACTION_SEND意图的调用活动的 ComponentName的意图附加。

常量值:“android.support.v4.app.EXTRA_CALLING_ACTIVITY”

EXTRA_CALLING_PACKAGE

String EXTRA_CALLING_PACKAGE

用于存储ACTION_SEND意图的调用程序包的名称的意图额外。 当使用startActivityForResult开始一个活动时,这是多余的信息。 (它也由getCallingPackage()提供。)不要直接使用此常数,而应考虑使用getCallingPackage(Activity)getCallingPackage()

常量值:“android.support.v4.app.EXTRA_CALLING_PACKAGE”

Public methods

configureMenuItem

void configureMenuItem (MenuItem item, 
                ShareCompat.IntentBuilder shareIntent)

MenuItem配置为充当共享操作。

如果应用程序运行在API级别14或更高(Android 4.0 /冰淇淋三明治)上,此方法将配置ShareActionProvider以提供更强大的用户界面来选择共享的目标。 将在应用程序的专用数据目录中以前缀“.sharecompat_”命名的文件中的每个调用活动跟踪历史记录。 如果应用程序希望将此MenuItem设置为在操作栏中显示为操作,则应该使用setShowAsAction(MenuItem, int)来除了调用此方法外还请求该行为。

如果应用程序运行在较旧的平台版本上,则此方法将为菜单项配置标准活动选择器对话框。

在调用活动的生命周期中,如果共享意图内的数据必须更改,则应用程序应通过以下几种方式之一更改该状态:

  • Call invalidateOptionsMenu(Activity). If the app is running on API level 11 or above and uses the Action Bar its menu will be recreated and rebuilt. If not, the activity will receive a call to onPrepareOptionsMenu(Menu) the next time the user presses the menu key to open the options menu panel. The activity can then call configureMenuItem again with a new or altered IntentBuilder to reconfigure the share menu item.
  • Keep a reference to the MenuItem object for the share item once it has been created and call configureMenuItem to update the associated sharing intent as needed.

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

configureMenuItem

void configureMenuItem (Menu menu, 
                int menuItemId, 
                ShareCompat.IntentBuilder shareIntent)

配置菜单项以充当共享操作。

Parameters
menu Menu: Menu containing the item to use for sharing
menuItemId int: ID of the share item within menu
shareIntent ShareCompat.IntentBuilder: IntentBuilder with data about the content to share

也可以看看:

getCallingActivity

ComponentName getCallingActivity (Activity calledActivity)

从共享意图中检索启动了calledActivity的活动的ComponentName。 提供社交分享功能的应用可以使用此功能为共享内容的应用提供归因功能。

注意:这些数据可能是由主叫应用程序自愿提供的。 因此,在安全或验证环境中,不应该信任其准确性。

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

getCallingPackage

String getCallingPackage (Activity calledActivity)

从共享意图中检索启动了calledActivity的包的名称。 提供社交分享功能的应用可以使用此功能为共享内容的应用提供归因功能。

注意:这些数据可能是由主叫应用程序自愿提供的。 因此,在安全或验证环境中,不应该信任其准确性。

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

Hooray!