1. 程式人生 > >android利用Intent.ACTION_SEND實現簡單分享功能

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. 分享文字內容到微信

圖1圖2

圖3圖4

圖5圖6

2. 分享文字內容到QQ

圖8圖9圖10

3. 分享圖片到微信

圖11圖12

圖13圖14

4.分享圖片到QQ

圖15圖16

相關推薦

android利用Intent.ACTION_SEND實現簡單分享功能

android中,利用Intent.ACTION_SEND可以實現簡單“分享”功能,可以分享文字、圖片等到其他應用,像微信、QQ、簡訊等。 MainActivity.java檔案: package com.example.androidtest; import java

利用ThinkPhp5來實現簡單註冊功能

利用ThinkPhp5來實現簡單註冊功能 1,首先在登入介面index.html上增加一個註冊buuton, Index.html介面: 2.註冊button按鈕跳轉到controller中Register.php檔案的register方法裡,利用fetch方法來渲染註冊介面。 R

利用tkinter實現簡單計算器功能(不使用eval函式)

利用tkinter實現簡單計算器功能(不使用eval函式) 一、思路 tkinter: 佈置主介面; 上部為數字顯示介面; 下部為數字鍵與功能鍵介面; 邏輯: 程式只考慮兩個運算元進行計算的情況,不考慮複雜情況 展示:

Android微博,微信,QQ分享功能實現

最近專案要求實現微博,微信,QQ的分享功能,並且要求有分享回撥,提示使用者分享成功還是失敗.當用戶從三方應用點選分享的連線的時候,通過h5頁面可以下載安裝app或者直接進入app的對應頁面. 首先說以下我遇到的幾個問題吧 QQ無法進行回撥,但是確實已經

Shell 實現簡單計算器功能

shell 計算器Shell 實現簡單計算器功能,腳本如下:[[email protected]/* */ scripts]# cat jisuan.sh #!/bin/bash print_usage(){ printf $"USAGE:$0 NUM1 {+|-|*|/} NUM2\n"

python實現簡單爬蟲功能

我們 目錄 size .com all 本地文件 使用 url alt  在我們日常上網瀏覽網頁的時候,經常會看到一些好看的圖片,我們就希望把這些圖片保存下載,或者用戶用來做桌面壁紙,或者用來做設計的素材。   我們最常規的做法就是通過鼠標右鍵,選擇另存為。但有些圖片鼠標右

在控件內實現簡單畫筆功能

box use from uic eve args class 窗體 down /// <summary> /// 實現窗體內簡單畫筆功能 /// </summary> public class DrawClass {

Python實現簡單爬蟲功能--批量下載百度貼吧裡的圖片

在上網瀏覽網頁的時候,經常會看到一些好看的圖片,我們就希望把這些圖片儲存下載,或者使用者用來做桌面桌布,或者用來做設計的素材。   我們最常規的做法就是通過滑鼠右鍵,選擇另存為。但有些圖片滑鼠右鍵的時候並沒有另存為選項,還有辦法就通過就是通過截圖工具擷取下來,但這樣就降低圖片的清晰度

android studio 使用zxing實現掃碼功能

1、新增依賴 在專案的build.gradle新增:maven { url 'https://jitpack.io' } allprojects { repositories { google() jcenter() maven { u

利用面向物件實現簡單的控制檯課程管理系統

本程式主要分為三部分,資料層,控制層和顯示層 程式中需要用到的東西:陣列,Scanner類,java中的多型等等 程式包括6個java檔案,Clinte,Course,Dao,Menu,Person,Student,Teacher Clinte是情景類,Cour

利用訊息佇列實現簡單聊天程式

本篇利用訊息佇列的特性實現簡單的聊天程式,msgsnd傳送資料,msgrcv接收資料來實現聊天功能,訊息佇列詳情。 資料接收端msgrcv //這是一個以system V訊息佇列實現的聊天程式客戶端 //// 1.建立訊息佇列 //// 2.從訊息佇列中獲取一個數據,打印出來 ///

使用百度分享api實現網頁分享功能

百度官方文件:http://share.baidu.com/code/advance#toid 首先先引入外部檔案: with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('sc

JS 實現簡單計算器功能

// if(symbol != null){ console.log(aNum, bNum); getResult(symbol, aNum, bNum); show.innerHTML = result;

Android Studio-個推-實現簡單聊天(二)

實現聊天,首先要知道聊天雙方的CID,這裡可以獲取到,將其存起來。 這裡用模擬器測試一下,準備倆臺模擬器,分別獲得其CID;準備好聊天介面;注備好聊天介面,就可以測試了。 一、web後臺Contraller package com.smxy.office.con

利用相對佈局實現使用者註冊功能

執行效果如下圖所示: 一、實現佈局檔案: 1、註冊介面程式碼: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.andr

Android Studio-個推-實現簡單聊天(三)

因為之前的是寫的主要程式碼,現在貼出全部程式碼,有些瑕疵,哈哈哈哈。那我現在開始貼程式碼吧 1.聊天實體類 (1)聊天實體類 ChatUser.java package com.smxy.lj.chat; import java.io.Serializable

Android 利用Intent啟動另一個app應用時,一個崩潰的問題

今天在做Launcher專案時,需要顯示所有app,並且點選呼叫,在呼叫時,遇到一個崩潰問題。在此做一記錄。 問題:在本地寫的一個demo應用,裡面有一個bug,點選這個demo應用,應用崩潰。在launcher應用中也點選呼叫這個demo應用,demo應用崩潰後,我的la

Android新浪微博SDK分享功能接入

整合前準備 1. 申請APP_KEY 第三方需要接入微博SDK必須在微博開放平臺上對應用進行註冊,並獲取APP_KEY,新增 應用的授權回撥頁面(Redirect URI) 2. 註冊應用程式的包名和簽名 您需要在微博開放平臺上註冊應用程式的包名和

JS實現簡單loading功能頁面

 <html> <head> <title>正在載入...</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312">

php實現簡單記事本功能

首先先做個html網頁表單 程式碼=》 <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-