`
- 浏览:
8882669 次
- 性别:
- 来自:
上海
-
【Android Advanced Training - 07】分享数据内容 [Lesson 1 - 发送分享的数据到其他App]
Sending Content to Other Apps[发送需要分享的内容到其他App]
- 当你构建一个intent,你必须指定这个intent需要触发的actions。Android定义了一些actions,包括ACTION_SEND,这个action表明着这个intent是用来从一个activity发送数据到另外一个activity的,甚至是跨进程之间的。
- 为了发送数据到另外一个activity,你需要做的是指定数据与数据的类型,系统会识别出能够兼容接受的这些数据的activity并且把这些activity显示给用户进行选择(如果有多个选择),或者是立即启动Activity(只有一个兼容的选择)。同样的,你可以在manifest文件的Activity描述中添加接受哪些数据类型。
- 在不同的程序之间使用intent来发送与接受数据是在社交分享内容的时候最常用的方法。Intent使得用户用最常用的程序进行快速简单的分享信息。
-
注意:为ActionBar添加功能的最好方法是使用ShareActionProvider,它能够在API
level 14以上进行使用。ShareActionProvider会在第三课中进行详细介绍。
Send Text Content [分享文本内容]
- ACTION_SEND的最直接与最常用的是从一个Activity发送文本内容到另外一个Activity。例如,Android内置的浏览器可以把当前显示页面的URL作为文本内容分享到其他程序。这是非常有用的,通过邮件或者社交网络来分享文章或者网址给好友。下面是一段Sample Code:
- 如果设备上有安装某个能够匹配ACTION_SEND与MIME类型为text/plain程序,那么Android系统会自动把他们都给筛选出来,并呈现Dialog给用户进行选择。如果你为intent调用了Intent.createChooser(),那么Android总是会显示可供选择。这样有一些好处:
- 即使用户之前为这个intent设置了默认的action,选择界面还是会被显示。
- 如果没有匹配的程序,Android会显示系统信息。
- 你可以指定选择界面的标题。
- 下面是更新后的代码:
- Optionally,你可以为intent设置一些标准的附加值,例如:EXTRA_EMAIL, EXTRA_CC, EXTRA_BCC, EXTRA_SUBJECT.然而,如果接收程序没有针对那些做特殊的处理,则不会有对应的反应。你也可以使用自定义的附加值,但是除非接收的程序能够识别出来,不然没有任何效果。典型的做法是,你使用被接受程序定义的附加值。
-
注意:一些e-mail程序,例如Gmail,对应接收的是EXTRA_EMAIL与EXTRA_CC,他们都是String类型的,可以使用putExtra(string,string[])方法来添加到intent里面。
Send Binary Content [分享二进制内容]
- 分享二进制的数据需要结合设置特定的MIME Type,需要在EXTRA_STREAM里面放置数据的URI,下面有个分享图片的例子,这个例子也可以修改用来分享任何类型的二进制数据:
- 请注意下面的内容:
- 你可以使用"*/*"这样的方式来制定MIME类型,但是这仅仅会match到那些能够处理一般数据类型的Activity【即一般的Activity无法详尽所有的MIME类型】
- 接收的程序需要有访问URI资源的权限。下面有一些方法来处理这个问题:
Send Multiple Pieces of Content [发送多块内容]
- 为了同时分享多种不同类型的内容,需要使用ACTION_SEND_MULTIPLE与指定到那些数据的URIs列表。MIME类型会根据你分享的混合内容而不同。例如,如果你分享3张JPEG的图片,那么MIME类型仍然是“image/jpeg”。如果是不同图片格式的话,应该是用“image/*”来匹配那些可以接收任何图片类型的activity。如果你需要分享多种不同类型的数据,可以使用“*/*”来表示MIME。像前面描述的那样,这取决于那些接收的程序解析并处理你的数据。下面是一个例子:
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
yii-advanced-app-2.0.4 下载
Advanced Android App Architecture pdf + epub + source code
官网原版,供不方便下载的开发者使用
vuforia-samples-advanced-android-ios-unity-4-2-3.zip官网下载太慢了,放在网盘方便大家下载
yii2高级多应用脚手架,下载yii-advanced-app-2.0.36.tgz直接使用开发,下载不了的朋友可以方便下载使用
yii-advanced-app-2.0.8.tgz 由于国外服务器下载太慢,共享下,用composer安装没有vendor核心文件夹
vuforia-samples-advanced-android-7-1-34 方便安卓的高通AR的unity示例包
advanced-spark-training.pdf
Yii2的高级应用程序模板yii-advanced-app-2.0.12.tgz
Qt-Advanced-Docking-System-master
This is where Advanced Android App Architectures comes to the rescue! In this book, you’ll learn all the popular architectures the quick and easy way: by following fun and easy-to-read tutorials. Who...
直接从github上面使用链接下载,几乎无法下载。 因此采用composer安装得到的源码,打包起来方便以后使用。
官网下载太慢了~这是yii2的高级版归档文件的压缩包,版本是v2.0.35;直接下载到你的服务器根目录解压,具体操作请移步yii2的官网吧
第1章介绍Android系统架构、系统源码目录和如何阅读源码,带领大家走进Android系统源码的世界。 第2章介绍Android系统启动过程,为下面的章节做好铺垫。 第3章介绍应用程序进程启动过程。 第4章介绍四大组件的工作...
yii-advanced-app-2.0.16,yii框架官方原文档,高级版本,
yii-advanced-app-2.0.2框架完整版下载
Advanced Bash-Scripting Guide
谷歌浏览器的api接口测试工具Advanced-REST-client
Kaggle比赛:波士顿房价数据集,包含训练集和测试集,以及数据描述文档,以及结果提交示例;该数据集经常用作回归类算法
Advanced Bash-Scripting Guide 3.9.1 (包括中译本) 作者:thegrendel 主页:http://personal.riverusers.com/~thegrendel 中译本:杨春敏(chunmin.yang at gmail.com) 黄毅 (linuxprogram at gmail.com)...