Android | 将内容分享到自己的app

今天带来的文章是一篇关于android的技术文章:


主要分享两个东西


第一:


目前,第三方分享基本是每个app的一个必不可少的一个功能,使用这个功能或许是为了推广自己的产品、又或者是推销销售、社交等等,市场上也有很多可以集成的第三方分享的app 可以集成qq的 微信的 sina的 甚至支付宝也可以 等等,好多。而对于android而言也是一样的。在android实现第三方分享系统上有一种比较简单的全面的实现第三方分享的方式:代码如下:


Intent intent=new Intent(Intent.ACTION_SEND);   
        intent.setType("text/plain");  
        intent.putExtra(Intent.EXTRA_SUBJECT, "分享");   
        intent.putExtra(Intent.EXTRA_TITLE, "Title");  
        intent.putExtra(Intent.EXTRA_TEXT, "要分享的内容");  
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);   
        startActivity(Intent.createChooser(intent, "请选择")); 



运行项目并填写分享内容,如图:


调用上面代码你可以发现可以打开一个新的窗口,如下





你可以通过此方式将内容分享到QQ,微信,微信收藏,短信,支付宝等等;


该方式实现分享的优点是:简单,快捷,可以分享到手机上全部支持分享的app且不需太多繁琐的带码,也不需要集成任何第三方sdk;
缺点:由于此方式的简单也早就了它不会支持图文混排分享,不想微信,qq官方sdk中那么多的花样;




第二:


如何使自己的app也可以像qq,微信那样有这种功能,就是 我通过调用《第一》中的代码,弹出的窗口中可以选择自己的app,且能拿到分享的数据,进行分享呢?


下面我来介绍一下,如何实现这种功能:


其实也很简单,要实现这种功能需要用到intent-filter
intent-filter 相信大家都应该了解,在这里就不细说了,如果你还不了解,你可以去这篇播客去看看:
http://blog.csdn.net/luohai859/article/details/7368745




下面我创建一个项目,名字叫PP 


实现功能步骤:
1.在AndroidManifest.xml 对应要启动的activity 配置如下


<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.SEND" />
<data android:mimeType="text/plain"/> 
<!-- <data android:mimeType="image/jpeg"/>
<data android:mimeType="image/png"/>
<data android:mimeType="application/zip"/>
<data android:mimeType="application/rar"/>
<data android:mimeType="audio/amr"/> -->
</intent-filter>


目前,以上这种配置仅仅支持intent.setType("text/plain");  这种类型的分享


如果需要其他类型 
如jpeg图片分享:<data android:mimeType="image/jpeg"/>
png图片分享:<data android:mimeType="image/png"/>
压缩包分享:<data android:mimeType="application/zip"/> 或者 <data android:mimeType="application/rar"/>


查看更多mimeType 你可以参考这篇文章
http://blog.csdn.net/janronehoo/article/details/7514883


2.在分享要打开的activity中获取分享数据(在这里我只对分享数据做以展示)


Intent intent = getIntent();
if(intent == null)
return;
Bundle extras = intent.getExtras();

if(extras == null)
return;

switch (intent.getType()) {
case "text/plain"://分享的内容类型,如果png图片:image/png 
tv.setText("分享内容:\ntitle: " + extras.get(Intent.EXTRA_TITLE) 
+ "\ncontent: " + extras.get(Intent.EXTRA_TEXT));
break;
default:
break;
}

以上代码便可以拿到要分享的数据


再次运行《第一》中项目,效果如下






这时就可以选择分享给PP好友,点击后如下图:



上图便是启动后拿到的分享数据,


3.拿到数据根据自己项目需求实现分享即可。


感兴趣的朋友也可以关注下面微信公众号看更多文章

dream_we90


最后 附上源码:http://download.csdn.net/detail/guojiel/9551587



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值