使用Intent完成一键分享图文

最牛的效果是做到图文都可以发送,如下::

上面的是用腾讯新闻界面的分享按钮发送的,包含分享、收藏、查看,以及一张封面图、标题和内容文字等布局。
本文并没有做到这个程度,只是做一个记录,以后碰到再学习,也欢迎高人指点。


1. 使用第三方SDK

推荐SDK有如shareSDK等,获取Appkey,按照说明应用即可,分享的界面一般来说无法修改。

2. 使用Intent

2.1 Intent完成文字发送

Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.setType("text/plain");
sendIntent.putExtra(Intent.EXTRA_TEXT,"This is text to show.");
shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);            startActivity(Intent.createChooser(shareIntent, "分享到"));

分享时,该方法会自动搜索手机内可以支持该type的所有应用。

2.2 Intent完成单张图片发送

方法1:
- 仅用于尝试,因此起初打算发App内部的Assets中的图片,尝试了以下方法:

Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.setType("image/*");
Uri uri = Uri.parse("file:///android_asset/ic_launcher");
//或者ic_launcher.png都不行
sendIntent.putExtra(Intent.EXTRA_STREAM,uri);
shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(Intent.createChooser(shareIntent, "分享到"));

提示找不到文件或者文件无效。

  • 寻找相册内图片发送:
Uri uriPic = Uri.fromFile(new File
("content://media/external/images/media/system/"+       "media/Preloaded/Pictures/Picture_A_Skyscraper.jpg"));
sendIntent.putExtra(Intent.EXTRA_STREAM,uriPic);
shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);            startActivity(Intent.createChooser(shareIntent, "分享到"));

仍然提示找不到文件或者文件无效。

  • 将Asset内图片在相册复制一份缩略图后发送:
InputStream is;
Bitmap bitmap = null;
try {is = getAssets().open("ic_launcher.png");bitmap = BitmapFactory.decodeStream(is);
} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();System.err.println("no such file error");
}
Uri uri = Uri.parse(MediaStore.Images.Media.insertImage(  getContentResolver(), bitmap, "ic_launcher.png", null));
sendIntent.putExtra(Intent.EXTRA_STREAM,uri);
shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);            startActivity(Intent.createChooser(shareIntent, "分享到"));

这种方法是对的,会在相册生成该图的缩略图,然后发送。

所以问题来了,我之前在Asset和相册中发送不成功的原因很可能是路径原因,希望有读到此文的高手指点一下,如何分享相册内图片或完成相册内部的分享照片功能。

方法2:
找到单张图片的绝对路径也是可以行得通,之前提示无文件或该文件无效基本都是由于路径问题,将图片放入SD卡中,由于系统不同,绝对路径可能不同,可以进入手机的SD卡路径下,查看该图片的详细信息,会显示绝对路径,将该路径写入程序中的File路径就可以:

String fileName = "storage/sdcard1/DCIM/Camera/q1.png";
File file = new File(fileName);     shareIntent.setType("image/*");         shareIntent.putExtra(Intent.EXTRA_STREAM,Uri.fromFile(file));
shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);            startActivity(Intent.createChooser(shareIntent, "分享到"));

实测通过

2.3 Intent完成多张图片发送
暂未实现
2.4 Intent完成图片+文字发送
暂未实现

使用Intent完成一键分享图文相关推荐

  1. Android使用Intent一键分享图片文字到腾讯、新浪、开心、微信等

    现在分享应用很多,消耗研发与维护时间,增加项目成本,而且集成分享功能后我们的应用包会比以前要大几MB.其实有android的Intent可以满足分享文字和图片的需求,而且不增加应用包的大小. /*** ...

  2. 安卓一键分享解决方案

    安卓一键分享解决方案 概要          开发者仅需10分钟即可集成到自己的App中,支持国内外40多家的主流社交平台,有强大的社会化统计分析管理后台,可以实时了解用户.信息流.回流率.传播效率等 ...

  3. react native一键分享功能实现amp;原理和注意点(支持微信、qq、新浪微博等)

    前言 目前使用一键分享比较主流的两个SDK:ShareSDK.友盟: 又因为友盟功能比较多且比较全,比如说友盟统计.友盟推送等,所以本文重点介绍的是友盟分享功能在rn上的应用以及要注意的点. reac ...

  4. Android进阶之使用第三方平台ShareSDK实现新浪微博的一键分享功能

    http://www.it165.net/pro/html/201402/9510.html http://www.it165.net/pro/html/201402/9510.html http:/ ...

  5. 简单的一键分享(1)

    不用其他的jar文件,因使用intent来实现一键分享,简单易学 package com.example.sharedemo; import android.os.Bundle; import and ...

  6. 使用第三方平台 ShareSDK 实现新浪微博的一键分享功能

    http://software.intel.com/zh-cn/blogs/2014/03/02/android-sharesdk/?utm_campaign=CSDN&utm_source= ...

  7. android intent分享第二次,Android利用Intent.ACTION_SEND进行分享

    安卓系统本身可以很简便的实现分享功能,因为我们只需向startActivity传递一个ACTION_SEND的Intent,系统就为我们弹出一个应用程序列表.其实在系统的文件管理器中,这应该是我们常用 ...

  8. 利用Intent.ACTION_SEND进行分享

    安卓系统本身可以很简便的实现分享功能,因为我们只需向startActivity传递一个ACTION_SEND的Intent,系统就为我们弹出一个应用程序列表.其实在系统的文件管理器中,这应该是我们常用 ...

  9. ShareSDK一键分享

    ShareSDK一键分享 效果图 第一步ShareSDK 1.首先进入mob的官网:http://mob.com; 如下图所示有注册和登录,首先我们需要注册一个账户,才可以申请应用得到appkey来使 ...

最新文章

  1. Android 换肤
  2. 偏方收藏(此信息为本人收藏,安全性无法验证,使用后产生的一些后果自负)...
  3. 使用Spring Data Redis操作Redis(集群版)
  4. 小结两种在Python中导入C语言扩展库的方法
  5. ThreadLocal在Spring中的应用
  6. 计算机的配件知识,一台电脑需要多少配件组成,硬件知识介绍
  7. 第五节:WebApi的三大过滤器
  8. codeforces 339A-C语言解题报告
  9. java 数据类型 string_java的基本数据类型和引用数据类型都有哪些,string属于什么类型...
  10. 收藏功能_六款多功能榻榻米,装完你家会大一半!超实用,收藏
  11. python获取月份字符串_python 时间字符串与日期转化
  12. GJB9001-2017质量管理体系
  13. 用matlab画指定点与点之间的连线
  14. 华为转正答辩ppt范文_华为转正答辩ppt模板下载-精选版.ppt
  15. xp系统从u盘启动计算机,U盘启动安装XP系统-从U盘启动给上网本安装XP
  16. SQL中去除重复数据的几种方法,我一次性都告诉你​
  17. 我今天登陆竟然被 CSDN 管理员给封杀了。
  18. Java在线租车系统
  19. 微信群如何设置只提醒包含某个关键字的消息
  20. China Mobile 移动

热门文章

  1. 质量度量之 “三级指标体系”
  2. 取消sourse insight输入较长代码时,代码就自动换行
  3. 2003加入域提示“用户已存在”
  4. dmdecode 与 megacli 命令用法参考
  5. 《计算方法》复习重点归纳
  6. P25边缘保留滤波(EPF滤波)
  7. mediaSoup源码分析-dtls操作
  8. MATLAB LTE工具箱详解(1)
  9. 【无标题】区块链的实际应用场景NO.1--助力疫情防控舍我其谁
  10. Spring中的IOC容器原理