Android 调用系统文字分享

QQ图片20180309141506.png

实现代码如下:

Intent StringIntent = new Intent(Intent.ACTION_SEND);
StringIntent.setType("text/plain");
StringIntent.putExtra(Intent.EXTRA_TEXT, ShareStr);
this.startActivity(Intent.createChooser(StringIntent, "分享")); // 创建选择器

第一条语句:

Intent StringIntent = new Intent(Intent.ACTION_SEND);

这句话的意思是新建一个Intent类对象,注意这里给它传递了一个参数ACTION_SEND。

这一个参数类型是文本型(String)其具体数值为:"android.intent.action.SEND"。

官网解释:ACTION_SEND : Activity Action: Deliver some data to someone else.  意思大概是将一些数据提供给其它的App。

第二条语句:

StringIntent.setType("text/plain");

函数原型:

Intent setType(String type) 'Set an explicit MIME data type.

这句话的意思是设置MIME类型。MIME类型包括如下:

常见的MIME类型(通用型):
超文本标记语言文本 .html text/html
xml文档 .xml text/xml
XHTML文档 .xhtml application/xhtml+xml
普通文本 .txt text/plain
RTF文本 .rtf application/rtf
PDF文档 .pdf application/pdf
Microsoft Word文件 .word application/msword
PNG图像 .png image/png
GIF图形 .gif image/gif
JPEG图形 .jpeg,.jpg image/jpeg
au声音文件 .au audio/basic
MIDI音乐文件 mid,.midi audio/midi,audio/x-midi
RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio
MPEG文件 .mpg,.mpeg video/mpeg
AVI文件 .avi video/x-msvideo
GZIP文件 .gz application/x-gzip
TAR文件 .tar application/x-tar

我们这里要设置的意图类型是文本型,所以选择“text/plain”。但是要注意setType是区分大小写的。所以要特别注意一下。

第三条语句:

StringIntent.putExtra(Intent.EXTRA_TEXT, ShareStr);

putExtra是复写的函数,所以它有很多定义,有的是两个参数,有的是一个参数。有的第二个参数类型不一样。这个要注意一下。但是大致也可以看的出,第一个参数是定义你往意图(Intent)上附加(Extra)数据的类型。这里传入的参数是Intent.EXTRA_TEXT。很明显这是一个android提供的常量数据。

官网解释:EXTRA_TEXT:A constant CharSequence that is associated with the Intent, used with ACTION_SEND to supply the literal data to be sent.
(大致意思:与ACTION_SEND一起用于提供要发送的文字数据。)

第四条语句:

this.startActivity(Intent.createChooser(StringIntent, "分享"));

这一条语句相当简单,实际就是打开一个活动视图。注意这个视图是通过createChooser函数创建的,看名知意。这个函数是创建了一个选择器。第一个参数类型是Intent,第二个类似一个标题的文本型数据。


总结一下:首先新建一个意图类型。然后设置意图的附加数据类型(MIME类型)。第三步依照设置的数据类型添加数据。最后创建一个选择器,将意图分发出去。

特别注意:setType这个函数,在官网有这么一句话:This method automatically clears any data that was previously set (for example by setData(Uri)).

大致意思:此方法会清楚你前面所有设置的数据,例如用setData设置的Uri数据。所以这个函数的使用必须在putExtra前面。

Intent介绍http://android.xsoftlab.net/reference/android/content/Intent.html



Android 调用系统文字分享


本站如无特别说明即为原创,转而告知:(http://iwonmo.com/archives/1274.html)

标签: android, android studio, 安卓分享, 安卓调用系统分享

添加新评论