Android分享---调用系统自带的分享功能
以前我们总想到友盟等平台分享功能的集成,集成这玩意还得下载对应的jar包。当然,用这些平台的分享并不是说什么好处都没有,至少人家的统计功能还是很实用的。不过有的时候我们是不需要多余功能的,只需要能分享就行,那我们就可以直接用Andriod系统自带有分享功能去完成了。下面我来介绍如何实现系统的分享功能:
分享文本信息
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, text);
context.startActivity(Intent.createChooser(intent, title));
分享单张图片
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("image/png");
intent.putExtra(Intent.EXTRA_STREAM, uri);
context.startActivity(Intent.createChooser(intent,title));
这里解释一下,图片文件要先通过getResourcesUri()拿到图片资源的Path,然后再转换成URI对象放入intent.putExtra()的第二个参数中。
分享多个图片文件
Intent mulIntent = new Intent(Intent.ACTION_SEND_MULTIPLE);
mulIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, imageUris);
mulIntent.setType("image/jpeg");
context.startActivity(Intent.createChooser(mulIntent, "多图文件分享"));
我们可以创建一个选择器,用户多选完之后,放到Uri集合,然后就直接可以通过以上代码进行分享了,分享效果和上图相同。
以上分享,已整理成工具类,代码如下:
package huolongluo.sharedemo; import android.content.Context;
import android.content.Intent;
import android.net.Uri; import java.util.ArrayList; /**
* Created by 火龙裸 on 2017/11/2.
*/
public class ShareUtil
{ private static final String EMAIL_ADDRESS = "791335000@qq.com.com"; public static void shareText(Context context, String text, String title)
{
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, text);
context.startActivity(Intent.createChooser(intent, title));
} public static void shareImage(Context context, Uri uri, String title)
{
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("image/png");
intent.putExtra(Intent.EXTRA_STREAM, uri);
context.startActivity(Intent.createChooser(intent, title));
} public static void sendEmail(Context context, String title)
{
Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("mailto:" + EMAIL_ADDRESS));
context.startActivity(Intent.createChooser(intent, title));
} public static void sendMoreImage(Context context, ArrayList<Uri> imageUris, String title)
{
Intent mulIntent = new Intent(Intent.ACTION_SEND_MULTIPLE);
mulIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, imageUris);
mulIntent.setType("image/jpeg");
context.startActivity(Intent.createChooser(mulIntent, "多图文件分享"));
}
}
Android分享---调用系统自带的分享功能的更多相关文章
- ShareIntentUtil【调用系统自带的分享的工具类】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 根据参考资料的文章,整理了调用系统自带分享的工具类(实现了适配7.0FileProvider的功能),需要搭配<Android ...
- Android 实现调用系统拍照相册,剪切功能
1.XML布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:andr ...
- (转)Android调用系统自带的文件管理器进行文件选择并获得路径
Android区别于iOS的沙盒模式,可以通过文件浏览器浏览本地的存储器.Android API也提供了相应的接口. 基本思路,先通过Android API调用系统自带的文件浏览器选取文件获得URI, ...
- 应用程序间跳转 (友盟SSO 授权 与系统自带的分享)
应用程序间跳转的应用场景 使用第三方用户登录,如微信登录,返回用户名和密码 需要用户授权,返回到调用程序,同时返回授权的用户名 应用程序推广,跳转到itunes并显示指定app下载页 第三方支付,跳转 ...
- Android调用系统自带的设置界面
Android有很多系统自带的设置界面,如设置声音,设置网络等. 在开发中可以调用这些系统自带的设置界面. 点击以下列表中的选项,就可以调出相应的系统自带的设置界面. 如点击“无线和网络设置”,可以调 ...
- Android中调用系统所装的软件打开文件(转)
Android中调用系统所装的软件打开文件(转) 在应用中如何调用系统所装的软件打开一个文件,这是我们经常碰到的问题,下面是我所用到的一种方法,和大家一起分享一下! 这个是打开文件的一个方法: /** ...
- Android manifest之系统自带的permission
Android manifest之系统自带的permission 本文描述Android系统自带的permission.点击查看:“关于permission的原始定义和说明”.点击查看:“Androi ...
- iOS程序中调用系统自带应用(短信,邮件,浏览器,地图,appstore,拨打电话,iTunes,iBooks )
在网上找到了下在记录下来以后方便用 在程序中调用系统自带的应用,比如我进入程序的时候,希望直接调用safar来打开一个网页,下面是一个简单的使用:
- android开发中系统自带语音模块的使用
android开发中系统自带语音模块的使用需求:项目中需要添加语音搜索模块,增加用户体验解决过程:在网上搜到语音搜索例子,参考网上代码,加入到了自己的项目,完成产品要求.这个问题很好解决,网上能找到很 ...
随机推荐
- 【NOIP2013】 华容道 bfs预处理+bfs
这一题我们考虑一个最裸的算法: 我们设$dp[i][j][k][l]$表示当前棋子在$(i,j)$且空格在$(k,l)$时的最小步数 然后显然随便转移一下就好了,时间复杂度为$O(q(nm)^2)$. ...
- POJ 1089
#include <iostream> #include <algorithm> #define MAXN 50005 using namespace std; struct ...
- POJ 1046
#include<iostream> using namespace std; #define MAXN 16 #define inf 100000000 struct node { in ...
- WPF快速实现XML可视化编辑工具
虽然最近业余时间主要都放在研究AngularJS上了,不过由于正好要帮朋友做一个生成XML的小工具,顺便又温顾了一下WPF.虽然这个时代相对于Web应用和移动App,Windows应用程序是越来越少了 ...
- Top Leaders社区发现算法(top leaders community detection approach in information networks)
一.概念 复杂网络:现实生活中各种系统都可以看做成复杂网络,复杂网络构成包括节点和边,节点是网络中的基本组成单元,节点之间的联系或者关系是网络中的边.例如 电力网络:基站代表节点,基站之间是否互通表示 ...
- 解决Mysql Workbench的Error Code: 1175错误 无法删除数据
使用workbench,如果你要批量更新或删除数据,一般会报“ Error Code: 1175 You are using safe update mode and you tried to upd ...
- (转)MySQL 线程池内幕
原文:http://blog.jobbole.com/109695/ http://mysqllover.com/?p=826 http://blog.csdn.net/hsuxu/article/d ...
- Failed to instantiate [java.util.List]: Specified class is an interface
错误信息提示: Failed to instantiate [java.util.List]: Specified class is an interface; 错误信息意思:参数错误,参数封装出了问 ...
- MySQL的Sleep进程占用大量连接解决方法
第一部分为产生大量sleep进程的原理及对应解决方法第二部分为设置wait_timeout值,有效减少sleep进程 ========================================= ...
- nginx配置负载均衡,tomcat宕机响应缓慢,自动切换的问题
用了nginx负载均衡后,在两台tomcat正常运行的情况下,访问http://localhost 速度非常迅速,通过测试程序也可以看出是得到的负载均衡的效果,但是我们试验性的把其中一台tomcat( ...