你的位置:首页 > 软件开发 > 操作系统 > 【Android】19.2 ShareActionProvider类帮你把信息分享出去

【Android】19.2 ShareActionProvider类帮你把信息分享出去

发布时间:2016-03-06 19:00:11
分类:C#、Android、VS2015; 创建日期:2016-03-06 一、简介 共享操作提供程序类(ShareActionProvider)简化了你希望与其他人(或者其他应用程序)共享或分享出来的字符串、图片、图标、以及其他各种类型的二进制文件等操作。换句话说,就是帮你实现 ...

【Android】19.2 ShareActionProvider类帮你把信息分享出去

分类:C#、Android、VS2015;

创建日期:2016-03-06

一、简介

共享操作提供程序类(ShareActionProvider)简化了你希望与其他人(或者其他应用程序)共享或分享出来的字符串、图片、图标、以及其他各种类型的二进制文件等操作。换句话说,就是帮你实现类似我们常见的“分享到微博”、“分享到QQ空间”、“通过短信分享”、“通过邮件分享”、……,以及分享到你自己的应用程序中的某个模块或区域(比如在操作栏ActionBar中呈现出来分享的信息)等功能。

总之,ShareActionProvider就是帮你实现将信息分享到任何你希望分享到的一个或多个目标,只要这些目标满足你在分享功能中指定的操作(Action),那么这些目标就能自动收到你分享出来的信息。

说到这,你应该也进一步理解了上一节刚刚介绍的SharedPreferenc类的另一层真正的含义或用途了吧,就是除了保存应用程序配置等信息外,还能保存你最喜欢的别人或别的程序分享出来的信息,因此叫“共享操作首选项”。

1、分享的信息类型

分享出来的“信息”不论是什么,都属于下面两种类型之一。

(1)字符串分享(或者叫文本信息分享)

字符串分享有什么用呢?比如别人希望你去实现这样一个功能:当几个人一块外出去旅游时,这几个人都希望随时知道其他人当前所在的位置。这个“其他人当前所在的位置”实际上就是一个分享出来的字符串,它可以是经纬度,也可以是某个能叫得上名字的地址。

如果将这个字符串和百度地图结合在一起,就能轻松实现刚才说“几个人外出旅游”中描述的功能了。好像有个软件叫“与你同行”,该软件应该就是根据这个原理实现的。别忘了,第3章你已经学习过百度地图API提供的“短串分享”以及“地图标注”功能,这个“短串”就是这里所说的字符串。如果这个字符串是经纬度,那么就可以在百度地图的这个经纬度位置处加上一个“标注”。如果把几个人所在的位置同时都标注出来,这几个人不是就可以直观地看出其他几个人都在哪了吗,呵呵。

再进一步扩展一下,你也同样可以实现类似“监控老年人外出时当前所在的位置”、“监控出租车当前所在的位置”、……等。

如果将字符串和你的应用程序模块结合在一起,那么每个满足过滤条件的模块都可以自动接收到这些信息。

(2)二进制流分享

我们知道,任何二进制文件,都可以通过“流”(Stream)来进行存取,既然这样,那还有什么不可以分享出来呢?换言之,只要你想分享出来,什么信息都可以分享。

2、分享的操作类型

“分享”的本质含义就是需要你把准备共享的信息发送出去,以便让满足过滤条件的目标去接收。

Android提供的分享操作选项常见有:

Android.Content.Intent.ActionSend

Android.Content.Intent.ActionSendMultiple

3、谁接收分享的信息(过滤条件)

满足过滤条件的目标是接收方自己根据需要指定的,比如在程序中通过IntentFilter特性来声明过滤条件,即:可接收哪些别人或别的程序分享出来的信息。

如果别人通过程序把信息分享出来,而你的程序不愿意接收这些分享的信息,那你照样收不到(短信、邮件除外,那是一种被动接收,除非你过滤掉这些短信或邮件,比如垃圾短信、垃圾邮件等)。

ShareActionProvider的3个关键点也就是这些了,下面通过例子演示基本用法。

二、例19-2--ShareActionProvider的基本用法

该例子演示了如何在操作栏的菜单中利用ShareActionProvider把图像分享出来,由于字符串分享比较简单,这里就不演示了。

当用户单击操作栏(Action Bar)上的【图像分享】菜单项时,ShareActionProvider就会自动加载与其关联的Indent,然后把这个图像分享出去。

此示例用到了前面讲过的消息传递应用程序,接受分享信息的目标就是利用它来接收分享的图像的。另外,该例子也演示了如何读取Assets文件夹下的图像文件(monkey.png)到共享存储区。

在ch1902MainActivity.cs文件中,将图像(ch1902monkey.png)先复制到可共享访问的位置,然后利用Intent将其分享出来。

在ch1902SharedShow.cs文件中,通过IntentFilter指定满足接收分享的过滤条件,就可以在界面中显示出来ch1902MainActivity.cs文件中分享出来的图像。

运行截图

下面左图是开始界面(ch1902Main.a【Android】19.2 ShareActionProvider类帮你把信息分享出去  【Android】19.2 ShareActionProvider类帮你把信息分享出去

下面左图是单击【图片分享】后出现的菜单项,这些菜单项是系统自动找出来的。其中,【图片分享查看器】是ch1902SharedShow.cs文件中指定的满足分享过滤的条件后,系统自动查找出来的菜单项;右图是单击【图片分享查看器】菜单项后,在ch1902SharedShow.a【Android】19.2 ShareActionProvider类帮你把信息分享出去   【Android】19.2 ShareActionProvider类帮你把信息分享出去

设计步骤

1、在Assets下放置一个图片

将ch1902monkey.png拖放到Assets文件夹下。这一步主要是为了演示如何读取Assets文件夹下的图像资源。

2、添加菜单(ch1902ActionBarMenu.在Resources/menu子文件夹下创建该文件。

这个菜单中只有一个菜单项,在该菜单项中,将android:actionProviderClass设置为“android.widget.ShareActionProvider”,它就会自动创建该类的实例,这样就可以在ch1902MainActivity.cs文件中引用这个实例了。

<??> <menu ="http://schemas.android.com/apk/res/android"> <item android:id="@+id/ch1902_overflowMenuItem"   android:showAsAction="never"   android:title="图片分享"   android:actionProviderClass="android.widget.ShareActionProvider" /></menu>

原标题:【Android】19.2 ShareActionProvider类帮你把信息分享出去

关键词:Android

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录