Android分享---调用系统自带的分享功能

以前我们总想到友盟等平台分享功能的集成,集成这玩意还得下载对应的jar包。当然,用这些平台的分享并不是说什么好处都没有,至少人家的统计功能还是很实用的。不过有的时候我们是不需要多余功能的,只需要能分享就行,那我们就可以直接用Andriod系统自带有分享功能去完成了。下面我来介绍如何实现系统的分享功能:

分享文本信息

1 Intent intent = new Intent(Intent.ACTION_SEND);
2 intent.setType("text/plain");
3 intent.putExtra(Intent.EXTRA_TEXT, text);
4 context.startActivity(Intent.createChooser(intent, title));

分享单张图片

1 Intent intent = new Intent(Intent.ACTION_SEND);
2 intent.setType("image/png");
3 intent.putExtra(Intent.EXTRA_STREAM, uri);
4 context.startActivity(Intent.createChooser(intent,title));

这里解释一下,图片文件要先通过getResourcesUri()拿到图片资源的Path,然后再转换成URI对象放入intent.putExtra()的第二个参数中。

分享多个图片文件

1 Intent mulIntent = new Intent(Intent.ACTION_SEND_MULTIPLE);
2 mulIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, imageUris);
3 mulIntent.setType("image/jpeg");
4 context.startActivity(Intent.createChooser(mulIntent, "多图文件分享"));

我们可以创建一个选择器,用户多选完之后,放到Uri集合,然后就直接可以通过以上代码进行分享了,分享效果和上图相同。

以上分享,已整理成工具类,代码如下:

 1 package huolongluo.sharedemo;
 2
 3 import android.content.Context;
 4 import android.content.Intent;
 5 import android.net.Uri;
 6
 7 import java.util.ArrayList;
 8
 9 /**
10  * Created by 火龙裸 on 2017/11/2.
11  */
12 public class ShareUtil
13 {
14
15     private static final String EMAIL_ADDRESS = "[email protected]";
16
17     public static void shareText(Context context, String text, String title)
18     {
19         Intent intent = new Intent(Intent.ACTION_SEND);
20         intent.setType("text/plain");
21         intent.putExtra(Intent.EXTRA_TEXT, text);
22         context.startActivity(Intent.createChooser(intent, title));
23     }
24
25     public static void shareImage(Context context, Uri uri, String title)
26     {
27         Intent intent = new Intent(Intent.ACTION_SEND);
28         intent.setType("image/png");
29         intent.putExtra(Intent.EXTRA_STREAM, uri);
30         context.startActivity(Intent.createChooser(intent, title));
31     }
32
33     public static void sendEmail(Context context, String title)
34     {
35         Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("mailto:" + EMAIL_ADDRESS));
36         context.startActivity(Intent.createChooser(intent, title));
37     }
38
39     public static void sendMoreImage(Context context, ArrayList<Uri> imageUris, String title)
40     {
41         Intent mulIntent = new Intent(Intent.ACTION_SEND_MULTIPLE);
42         mulIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, imageUris);
43         mulIntent.setType("image/jpeg");
44         context.startActivity(Intent.createChooser(mulIntent, "多图文件分享"));
45     }
46 }
时间: 2024-10-07 03:17:10

Android分享---调用系统自带的分享功能的相关文章

安卓小记(调用系统自带的部分功能)

显示网页:         Uri uri = Uri.parse("http://www.google.com"); Intent it = new Intent(Intent.ACTION_VIEW,uri); startActivity(it);显示地图:  Uri uri = Uri.parse("geo:38.899533,-77.036476"); Intent it = new Intent(Intent.Action_VIEW,uri); start

(转)Android调用系统自带的文件管理器进行文件选择并获得路径

Android区别于iOS的沙盒模式,可以通过文件浏览器浏览本地的存储器.Android API也提供了相应的接口. 基本思路,先通过Android API调用系统自带的文件浏览器选取文件获得URI,然后将URI转换成file,从而得到file. 调用系统自带的文件浏览器 public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState

应用程序间跳转 (友盟SSO 授权 与系统自带的分享)

应用程序间跳转的应用场景 使用第三方用户登录,如微信登录,返回用户名和密码 需要用户授权,返回到调用程序,同时返回授权的用户名 应用程序推广,跳转到itunes并显示指定app下载页 第三方支付,跳转到支付APP,如支付宝,微信钱包 显示位置及导航功能时,跳转到第三方地图应用. 打电话.发邮件.发短信.打开网页等,跳转到内置APP程序 应用间的跳转: 1.//url :统一资源占位符 http://baidu.com tel://110 file:///apple/storebock //由 

ios程序如何实现系统自带的分享

ios系统自带的分享,支持的平台非常有限, 国内的只有 新浪微博和 腾讯微博,但是程序要求不多的话,也可以直接使用系统自带的分享,也比较简单. 首先,需要导入系统自带的框架  #import <Social/Social.h> // 1.判断平台是否可用(就是手机设置里 的新浪微博 和腾讯微博 有没有账号登录) if (![SLComposeViewController isAvailableForServiceType:SLServiceTypeSinaWeibo]) { UIAlertVi

IOS系统自带社交分享

很多APP中都带有社交分享功能,通过用户的分享,让更多地人去了解和使用这个APP,目前社交分享是移动互联网应用程序推广的最重要手段之一,国内较或的分享平台有微信,IOS6后苹果集成的新浪微博,还有IOS7后集成的腾讯微博. 在IOS中,实现社交分享可以自己编写各个平台的分享代码,但代码量较多,也可以利用IOS自带的Social.framework,更可以利用第三方的分享框架,如友盟,ShareSDK等.接下来先介绍一个系统自带的分享功能. 打开设备或模拟器的偏好设置,可以看到如下 系统需要先登录

Android调用系统自带的文件管理器进行文件选择

http://blog.csdn.net/zqchn/article/details/8770913的补充 FileUtils文件 public class FileUtils {     public static String getPath(Context context, Uri uri) {         if ("content".equalsIgnoreCase(uri.getScheme())) {             String[] projection =

android中调用系统的发送短信、发送邮件、打电话功能

1 调用发送短信功能: Uri smsToUri = Uri.parse("smsto:"); Intent sendIntent = new Intent(Intent.ACTION_VIEW, smsToUri); sendIntent.putExtra("address", "123456"); //电话号码,这行去掉的话,默认就没有电话 sendIntent.putExtra("sms_body","短信内容

Android中调用系统所装的软件打开文件(转)

Android中调用系统所装的软件打开文件(转) 在应用中如何调用系统所装的软件打开一个文件,这是我们经常碰到的问题,下面是我所用到的一种方法,和大家一起分享一下! 这个是打开文件的一个方法: Java代码 /** * 打开文件 * @param file */ private void openFile(File file){ Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //设置in

PB调用系统自带的DLL 实现MD5

适用环境:powerbuilder 10.0以后的版本  window server2003以后的测试可用 PB也可以调用系统自带的DLL 实现MD5 其中md5file对大附件的处理速度也比第三方组件快一些 这里可以去下载附件 //调用样例: u_derek_md5 lu_md5 lu_md5=create u_derek_md5 string ls_text="123" string ls_result,ls_ret string ls_filepath="C:\1.tx