Android SDK:实现一个分享的Intent

来源:互联网 发布:淘宝上我是商家在哪 编辑:程序博客网 时间:2024/05/10 17:34

原文地址:http://mobile.tutsplus.com/tutorials/android/android-sdk-implement-a-share-intent/

本教程通过创建一个分享按钮的基本过程,来实现分享Intent,传递你的内容并且构建列表选择器。

实现分享Intent允许用户在程序中通过多种渠道去分享内容,包括邮件、文本信息、社交网络等等。你可以给用户一个良好的控制程度,让他们在自己的设备上从可用的应用程序分享列表中选择他们希望通过何种途径分享内容。


Step 1: 开始一个新的Android项目

如果你已经有一个应用程序程序,并且想要实现分享功能,那么你可以直接使用它。如果你没有程序,那么在你的Android IDE中创建一个新项目吧。在Eclipse中,选择"File"->"New"->"Project"然后选择"Android Project"。填写你的项目细节,然后单击"Finish"。你的新应用程序的细节将会出现在workspace中。




Step 2: 选择一个Activity来启动分享Intent

如果你在你的Android程序中已经有了一个你打算启动分享Intent的Activity,在你的IDE的编辑器界面打开它。否则,你可以使用你新建程序的主类或创建一个新类,其中包括一个用于启动你的分享Intent的按钮。使这个类继承Activity类,包含"onCreate"方法,并在其中建立你的用户界面元素。


Step 3: 创建一个分享按钮

你可以任意的用户操作中启动你的分享Intent,例如按下一个设置或者上下文菜单的项。下面的Java代码在Activity的"onCreate"方法中创建了一个Image Button:

ImageButton sharingButton = new ImageButton(this);sharingButton.setLayoutParams(new ViewGroup.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));sharingButton.setImageResource(R.drawable.sharing);

创建的按钮基于Android中的ImageButton类,Activity需要导入它。这个代码中提到的图像保存在程序资源的drawable文件夹中,文件名为"sharing"。 你可以使用你自己的图片并更改与它名字相关的代码。此外,除了图像按钮,你还可以创建一个标准的带文本的按钮。


Step 4: 监听按钮点击

根据你用于启动你的Intent的按钮类型,你可能需要去实现一个监听器功能。对于Image Button,你可以添加下面的代码:

sharingButton.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {shareIt();}});

当用户按下分享按钮时,这写代码为程序调用指定一个方法。通过代码中指定的方法,你可以在你代码中的从多个位置调用分享功能,例如长按时从"onContextItemSelected"方法调用,或者选项菜单按钮被按下时从"onOptionsItemSelected"方法调用。


Step 5: 实现分享方法

在你的Activity中添加一个新的方法,在你的按钮监听器方法中指定这个方法,如下面的代码:

private void shareIt() {//sharing implementation here}


这个方法将包含实现从你的程序分享内容的代码。如果你的项目有必要的话,你还可以选择给这个方法传递参数。


Step 6: 创建一个发送Intent

创建一个分享Intent。在你的分享方法中添加如下Java代码,创建一个带有ACTION_SEND类型的Intent对象:

Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);




Step 7: 设置分享类型

设置你要分享的内容为MIME类型。这将确定在选择列表中有哪些程序将会呈现给您的用户。纯文本、HTML、图像和视频都可以被分享。下面的Java代码演示了如何发送纯文本:

sharingIntent.setType("text/plain");


这是一个灵活的选择,你可以通过许多不同的方式发送纯文本。

对于指定的目标程序使用"setType"方法是可行的,但是这么做有一些风险,如果用户没有安装相关的应用程序的话可能会导致一些问题。为了使分享功能尽可能的通用,你将要控制你的用户在他们想要如何分享你的内容中去。在Android应用程序中为分享使用标准行为会给用户一个直观的体验。



Step 8: 建立分享内容

你可以传递你的分享内容的各种元素给发送Intent,包括主题、文本和媒体内容、还有邮件分享中的抄送地址等。下面的Java代码建立了一个字符串变量去存储分享文本内容的正文:

String shareBody = "Here is the share content body";


请记住,当用户选择一个确切的分享方式后,你的部分内容是不会出现的。例如,如果你设定了一个主题,如果用户选择使用短信去分享的话它是不会出现的,还有就是如果用户选择的是Twitter任何超过140个字符的信息都将被裁减。



Step 9: 传递内容给Intent

使用下面的代码传递你的分享内容给Intent类的“putExtra”方法:

sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject Here");sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareBody);

这个代码首先给分享内容添加了一个主题,然后通过引用字符串变量添加了文本正文。


Step 10: 创建一个选择器

现在,当用户按下分享按钮时,你已经定义好了分享的内容,你只需要通知Android去让用户选择他们分享的媒介。在你的分享方法中添加下列的代码:

1
startActivity(Intent.createChooser(sharingIntent,"Share via"));

这些代码传递分享Intent的名字给选择列表的顶部显示。你可能注意到了,这个例子使用的"Share via"在存在的程序中是一个标准选项。但是,你可以选择一个更适合你的程序的标题。

当用户从列表中选择一个程序时,你分享的内容将被传递给该应用程序。例如,如果用户选择一个邮件应用程序,你指定的主题将被自动填写在主题区域。如果用户希望改变内容,他们可以在发送前编辑内容。


结语

在你的Android应用程序中实现一个分享Intent的过程并不太复杂。然后,更大的挑战是选择你分享的内容的方式,它是服务于你的应用程序,保持它的用户友好性。例如,你不能在邮件中分享时,还是用分享短信或微博的内容。出于这个原因,最好保持你的分享内容尽可能一般,才可以使得这个功能将对Twitter和Facebook比Gmail和Email更有效,


关于译者

本人现在正就读于沈阳工业大学计算机应用技术专业的研究生,热爱Android平台的开发,对于英文系列教程的翻译,本人也是第一次尝试,所以如果本系列教程的翻译如果令您感到不适或厌恶,请不要抛砖头,可以通过下面的方式告知,本人将不胜感激。

Author Jimmy
Email mingjun.su[at]gmail.com
Blog http://blog.csdn.net/sumingjun

	
				
		
原创粉丝点击