android利用Intent.ACTION_SEND实现简单分享功能

android中,利用Intent.ACTION_SEND可以实现简单“分享”功能,可以分享文字、图片等到其他应用,像微信、QQ、短信等。

MainActivity.java文件:

package com.example.androidtest;

import java.io.File;

import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		String strDlgTitle = "对话框标题 - 分享文字";
		String strSubject = "我的主题";
		String strContent = "我的分享内容";

		/**
		 * 1.分享纯文字内容
		 */
//		shareText(strDlgTitle, strSubject, strContent);

		/**
		 * 2.分享图片和文字内容
		 */
		strDlgTitle = "对话框标题 - 分享图片";
		// 图片文件路径(SD卡根目录下“1.png”图片)
		String imgPath = Environment.getExternalStorageDirectory().getPath()
				+ File.separator + "1.png";
		// 图片URI
		Uri imageUri = Uri.fromFile(new File(imgPath));
		// 分享
		shareImg(strDlgTitle, strSubject, strContent, imageUri);
	}

	/**
	 * 分享文字内容
	 *
	 * @param dlgTitle
	 *            分享对话框标题
	 * @param subject
	 *            主题
	 * @param content
	 *            分享内容(文字)
	 */
	private void shareText(String dlgTitle, String subject, String content) {
		if (content == null || "".equals(content)) {
			return;
		}
		Intent intent = new Intent(Intent.ACTION_SEND);
		intent.setType("text/plain");
		if (subject != null && !"".equals(subject)) {
			intent.putExtra(Intent.EXTRA_SUBJECT, subject);
		}

		intent.putExtra(Intent.EXTRA_TEXT, content);

		// 设置弹出框标题
		if (dlgTitle != null && !"".equals(dlgTitle)) { // 自定义标题
			startActivity(Intent.createChooser(intent, dlgTitle));
		} else { // 系统默认标题
			startActivity(intent);
		}
	}

	/**
	 * 分享图片和文字内容
	 *
	 * @param dlgTitle
	 *            分享对话框标题
	 * @param subject
	 *            主题
	 * @param content
	 *            分享内容(文字)
	 * @param uri
	 *            图片资源URI
	 */
	private void shareImg(String dlgTitle, String subject, String content,
			Uri uri) {
		if (uri == null) {
			return;
		}
		Intent intent = new Intent(Intent.ACTION_SEND);
		intent.setType("image/*");
		intent.putExtra(Intent.EXTRA_STREAM, uri);
		if (subject != null && !"".equals(subject)) {
			intent.putExtra(Intent.EXTRA_SUBJECT, subject);
		}
		if (content != null && !"".equals(content)) {
			intent.putExtra(Intent.EXTRA_TEXT, content);
		}

		// 设置弹出框标题
		if (dlgTitle != null && !"".equals(dlgTitle)) { // 自定义标题
			startActivity(Intent.createChooser(intent, dlgTitle));
		} else { // 系统默认标题
			startActivity(intent);
		}
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.activity_main, menu);
		return true;
	}

}

其中,shareText方法实现了分享文本内容的功能,而shareImg方法实现了分享图片的功能。Intent.EXTRA_STREAM还可以分享其他类型的资源文件,比如:MP3。

运行效果如下所示:

1. 分享文字内容到微信

2. 分享文字内容到QQ

3. 分享图片到微信

4.分享图片到QQ

时间: 2024-10-29 04:05:12

android利用Intent.ACTION_SEND实现简单分享功能的相关文章

android 使用Intent.ACTION_SEND分享图片和文字内容(新浪微博,短信等)

下面的方法只能实现普通的文字分享: 1 2 3 4 5 6 7 8 9 10 11 private void shareContent() {         Intent share = new Intent(android.content.Intent.ACTION_SEND);         share.setType("text/plain");         String title = "标题";         String extraText=&

Android利用Intent与其他应用交互

前言: 上一篇博客给大家聊了Intent的定义,分类.属性和功能,相信大家对于Intent在Android中的作用已经清楚,这一篇博客将会给大家聊Intent的用法. Android系统的一个重要特性就是一个应用程序可以调用另外一个应用程序来完成用户的请求动作.比如你的应用程序需要给用户显示一个地理位置在地图上,你不必在你的应用程序中实现地图功能,而是创建一个显示这个地理位置的Intent,发送出去,Android系统会启动那些可以处理这个请求的应用程序.还比如:你用百度云盘下载了一个pdf文档

为Unity开发的android手机游戏添加一个社会化分享功能

先看一下我最近自己做的一个游戏的效果图,然后在为大家讲述怎么做这样一个分享功能,如果图片不直观,当然如果你也不介意我顺便宣传一下我的游戏,你可以点击以下这个链接,下载我的游戏,进去体验一下里面的这个分享功能:http://zhushou.360.cn/detail/index/soft_id/2954399?recrefer=SE_D_BubbleDeer 好了,接下来我们就来一起探讨一下这个分享功能怎么做. (1)提供下载一个社会化分析的SDK,这个我用的是mob.com网的ShareSDK,

android利用ViewPager做的介绍软件功能demo

<pre name="code" class="java">/** * 介绍该软件的功能 * @author yqq * */ public class WhatNewActivity extends Activity { private ViewPager mViewPager; private ImageView mPage0; private ImageView mPage1; private ImageView mPage2; private I

利用JavaScriptCore实现以下简单的功能(平方和)

1 #import "RootViewController.h" 2 #import <JavaScriptCore/JavaScriptCore.h> 3 4 @interface RootViewController ()<UIWebViewDelegate> 5 @end 6 7 @implementation RootViewController 8 9 - (void)viewDidLoad { 10 [super viewDidLoad]; 11 1

android调用系统的分享功能实现分享到短信,邮件和其他

之前写过一篇文章利用友盟等第三方实现分享到微信,微博和豆瓣等第三方社交站点.本次我们利用系统自带的分享功能去做,虽然简单,但对于以前类似友盟等第三方社交分享组件还没做的成熟的时候,也是一种好的选择.所以这里直接上代码对系统分享做个记录,代码有必要注释,所以就不做啥说明了: /** * 弹出分享列表 */ private void showShareDialog(){ AlertDialog.Builder builder = new AlertDialog.Builder(Thread_Cont

Android 分享功能的实现

I : 利用隐式Intent实现分享    1.应用实现分享的功能        1 /* 实现分享功能 */ 2 3 Intent intent = new Intent(); 4 intent.setAction(Intent.ACTION_SEND); 5 6 // 分享文本 7 intent.setType("text/plain"); // text/html ... 8 intent.putExtra(Intent.EXTRA_SUBJECT, "我要分享&quo

android一键分享功能不使用任何第三方sdk

在android中有自带的一键分享功能,不过它会把所有带分享的应用都找出来,如果我们只需要一些常见的分享应用,该如何做呢? 下面看我的效果图(横屏和竖屏自动适配): 接下来看我的调用(支持图片和文字分享,图片可以是网络图片,和本地sdcard路径的): 1 AndroidShare as = new AndroidShare( 2 MainActivity.this, 3 "哈哈---超方便的分享!!!来自allen", 4 "http://www.fjsen.com/ima

如何在android开发使用ACTION_SEND中共享图片和文本

我想使用 ACTION_SEND 共享图片+文字,我运行了下面的代码,暂时只能共享图片,无法共享文字,我如何才能共享? private Uri imageUri; private Intent intent; imageUri = Uri.parse("android.resource://" + getPackageName() + "/drawable/" + "ic_launcher"); intent = new Intent(); in