使用Intent完成一键分享图文
使用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完成一键分享图文相关推荐
- Android使用Intent一键分享图片文字到腾讯、新浪、开心、微信等
现在分享应用很多,消耗研发与维护时间,增加项目成本,而且集成分享功能后我们的应用包会比以前要大几MB.其实有android的Intent可以满足分享文字和图片的需求,而且不增加应用包的大小. /*** ...
- 安卓一键分享解决方案
安卓一键分享解决方案 概要 开发者仅需10分钟即可集成到自己的App中,支持国内外40多家的主流社交平台,有强大的社会化统计分析管理后台,可以实时了解用户.信息流.回流率.传播效率等 ...
- react native一键分享功能实现amp;原理和注意点(支持微信、qq、新浪微博等)
前言 目前使用一键分享比较主流的两个SDK:ShareSDK.友盟: 又因为友盟功能比较多且比较全,比如说友盟统计.友盟推送等,所以本文重点介绍的是友盟分享功能在rn上的应用以及要注意的点. reac ...
- Android进阶之使用第三方平台ShareSDK实现新浪微博的一键分享功能
http://www.it165.net/pro/html/201402/9510.html http://www.it165.net/pro/html/201402/9510.html http:/ ...
- 简单的一键分享(1)
不用其他的jar文件,因使用intent来实现一键分享,简单易学 package com.example.sharedemo; import android.os.Bundle; import and ...
- 使用第三方平台 ShareSDK 实现新浪微博的一键分享功能
http://software.intel.com/zh-cn/blogs/2014/03/02/android-sharesdk/?utm_campaign=CSDN&utm_source= ...
- android intent分享第二次,Android利用Intent.ACTION_SEND进行分享
安卓系统本身可以很简便的实现分享功能,因为我们只需向startActivity传递一个ACTION_SEND的Intent,系统就为我们弹出一个应用程序列表.其实在系统的文件管理器中,这应该是我们常用 ...
- 利用Intent.ACTION_SEND进行分享
安卓系统本身可以很简便的实现分享功能,因为我们只需向startActivity传递一个ACTION_SEND的Intent,系统就为我们弹出一个应用程序列表.其实在系统的文件管理器中,这应该是我们常用 ...
- ShareSDK一键分享
ShareSDK一键分享 效果图 第一步ShareSDK 1.首先进入mob的官网:http://mob.com; 如下图所示有注册和登录,首先我们需要注册一个账户,才可以申请应用得到appkey来使 ...
最新文章
- Android 换肤
- 偏方收藏(此信息为本人收藏,安全性无法验证,使用后产生的一些后果自负)...
- 使用Spring Data Redis操作Redis(集群版)
- 小结两种在Python中导入C语言扩展库的方法
- ThreadLocal在Spring中的应用
- 计算机的配件知识,一台电脑需要多少配件组成,硬件知识介绍
- 第五节:WebApi的三大过滤器
- codeforces 339A-C语言解题报告
- java 数据类型 string_java的基本数据类型和引用数据类型都有哪些,string属于什么类型...
- 收藏功能_六款多功能榻榻米,装完你家会大一半!超实用,收藏
- python获取月份字符串_python 时间字符串与日期转化
- GJB9001-2017质量管理体系
- 用matlab画指定点与点之间的连线
- 华为转正答辩ppt范文_华为转正答辩ppt模板下载-精选版.ppt
- xp系统从u盘启动计算机,U盘启动安装XP系统-从U盘启动给上网本安装XP
- SQL中去除重复数据的几种方法,我一次性都告诉你​
- 我今天登陆竟然被 CSDN 管理员给封杀了。
- Java在线租车系统
- 微信群如何设置只提醒包含某个关键字的消息
- China Mobile 移动