android分享功能开发!!!

from:http://jinzhu117.iteye.com/blog/1500174

项目有一个分享功能的需求,需要将图片和文字内容用已安装的可以分享内容的客户端(如腾讯微博、新浪微博、短信、邮件...)分享出去。

碰到分享的问题,如果之前没有整理过这方面资料的程序员肯定是google或者百度一下,我之前也是如此,但是用了网上的代码之后,选择新浪微博、腾讯微博等内容分享平台去分享,都能顺利的将图片文字内容分享出去,选择短信分享时,遇到了纠结的问题,内置的短信程序无法获取到文字内容,只能获取到图片内容,网上的代码如下:

 

Java代码   收藏代码
  1. Intent intent = new Intent(Intent.ACTION_SEND);  
  2.   
  3. // 设置Intent的内容类型为image/png.  
  4.   
  5. intent.setType("image/png");  
  6.   
  7. // 通过创建File的对象获取外存(SDCard)中的图片  
  8.   
  9. File f = new File(Constants.PIC_PRE_PATH_NAME);  
  10.   
  11. // 获取文件的URL  
  12.   
  13. Uri u = Uri.fromFile(f);  
 

 

//支持一般的分享(微博、。。。)

intent.putExtra(Intent.EXTRA_TEXT, text);

‍intent.putExtra(Intent.EXTRA_STREAM, u);  

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

activity.startActivity(Intent.createChooser(intent, "分享"));

这段代码在分享到微博等内容分享的平台时没有问题,短信分享时获取不到文字内容。

android中,从一个应用程序访问另一个应用程序可以通过该应用程序的uri去访问,格式如下:

 

  1.   1. Uri uri = Uri.parse("mailto:xxx@abc.com");    
  2.   2. Intent it = new Intent(Intent.ACTION_SENDTO, uri);    
  3.   3. startActivity(it);   

 

详细的案例可以参考转发《Intent的一些用法》,列出了很多intent的用法。

从一个activity跳转到另一个activity时,传输数据用的是键值对的形式传输的,目的客户端会根据相应的键获取对应的值,如果键的名称写错,目的客户端获取的该键的值肯定为空,短信分享也是这个原理,获取不到文字内容,肯定是制定的键名称写错了,研究后发现,彩信客户端对应的文字内容的键名称为“mms_body”,很显然,在以上程序中增加一段代码就可以解决获取不到文字内容的问题,增加的代码为:

 

intent.putExtra("sms_body", “content”);顺利解决。

 

还有一些应用有特殊的分享要求,只用新浪微博、腾讯微博、人人网分享内容,这个可以参考友盟平台提供的demo,很快就能解决。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值