您的位置:首页 > 移动开发 > Android开发

Android应用中实现系统“分享”接口

2014-07-10 14:48 561 查看
在android下各种文件管理器中,我们选择一个文件,点击分享可以看到弹出一些app供我们选择,这个是android系统分享功能,我们做的app也可以出现在这个列表中。



第一步:在Manifest.xml进行配置,比普通的activity中多增加一个Intent过滤器

<activity
            android:name="com.example.share.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            
            <intent-filter>
	       			<action android:name="android.intent.action.SEND"/>
	        			<category android:name="android.intent.category.DEFAULT"/>
						<!-- 	指定分享类型,我这边只能分享mp4 -->
	            		<data android:mimeType="video/mp4"/>
   			 </intent-filter>  
        </activity>


第二步:用户分享的时候如果选择了我们的app,会跳转到对应的activity,在avtivity中获取文件路径。然后做我们想做的事情

public class MainActivity extends Activity {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
	    super.onCreate(savedInstanceState);
	    setContentView(R.layout.activity_main);
		
	    TextView pathTextView=(TextView) findViewById(R.id.path);
		
            Intent intent = getIntent();
            String action = intent.getAction();//action
            String type = intent.getType();//类型
        
            //类型是mp4类型
            if (Intent.ACTION_SEND.equals(action) && type != null && "video/mp4".equals(type)) {
                Uri uri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM);
                //如果是媒体类型需要从数据库获取路径
                String filePath=getRealPathFromURI(uri);
                pathTextView.setText("视频文件路径:"+filePath);
            }
	}
	
	/**
	 * 通过Uri获取文件在本地存储的真实路径
	 */
	private String getRealPathFromURI(Uri contentUri) {
		String[] proj = {MediaStore.MediaColumns.DATA};
		Cursor cursor=getContentResolver().query(contentUri, proj, null, null, null);
		if(cursor.moveToNext()){
			return cursor.getString(cursor.getColumnIndex(MediaStore.MediaColumns.DATA));
		}
		cursor.close();
		return null;
	}
}


如果需要分享多个文件怎么办?

答:修改 Manifest.xml中activity中Intent中action的android:name属性

<span style="font-size:14px;">            <intent-filter>
		<!--   支持多个文件分享 -->
	        <action android:name="android.intent.action.SEND_MULTIPLE"/>
	        <category android:name="android.intent.category.DEFAULT"/>
		<!-- 	指定分享类型,我这边只能分享mp4 -->
	        <data android:mimeType="video/mp4"/>
   	  </intent-filter>  </span>


效果图如下:





点击下载源码

我参考的博客:http://blog.csdn.net/xyz_lmn/article/details/16856843



Android 常用 mimeType 表

一、MIME TYPE描述
多用途互联网邮件扩展MIMEMultipurpose Internet Mail Extensions)是一个互联网标准,它扩展了电子邮件标准,使其能够支持非ASCII字符、二进制格式附件等多种格式的邮件消息。
内容类型(Content-Type),这个头部领域用于指定消息的类型。一般以下面的形式出现。[type]/[subtype]
type有下面的形式。

Text:用于标准化地表示的文本信息,文本消息可以是多种字符集和或者多种格式的;

Multipart:用于连接消息体的多个部分构成一个消息,这些部分可以是不同类型的数据;

Application:用于传输应用程序数据或者二进制数据;

Message:用于包装一个E-mail消息;

Image:用于传输静态图片数据;

Audio:用于传输音频或者音声数据;

Video:用于传输动态影像数据,可以是与音频编辑在一起的视频数据格式。

subtype用于指定type的详细形式。content-type/subtype配对的集合和与此相关的参数,将随着时间而增长。为了确保这些值在一个有序而且公开的状态下开发,MIME使用Internet Assigned Numbers Authority (IANA)作为中心的注册机制来管理这些值。常用的subtype值如下所示:

text/plain(纯文本

text/html(HTML文档)

application/xhtml+xml(XHTML文档)

image/gif(GIF图像)

image/jpeg(JPEG图像)【PHP中为:image/pjpeg】

image/png(PNG图像)【PHP中为:image/x-png】

video/mpeg(MPEG动画)

application/octet-stream(任意的二进制数据)

application/pdf(PDF文档)

application/msword(Microsoft Word文件)

message/rfc822(RFC 822形式)

multipart/alternative(HTML邮件的HTML形式和纯文本形式,相同内容使用不同形式表示)

application/x-www-form-urlencoded(使用HTTP的POST方法提交的表单)

multipart/form-data(同上,但主要用于表单提交时伴随文件上传的场合)



二、常用MIME Type表
转自:http://www.littledai.com/20110408/112443/791
3gp video/3gpp

aab application/x-authoware-bin

aam application/x-authoware-map

aas application/x-authoware-seg

ai application/postscript

aif audio/x-aiff

aifc audio/x-aiff

aiff audio/x-aiff

als audio/X-Alpha5

amc application/x-mpeg

ani application/octet-stream

apk application/vnd.android.package-archive

asc text/plain

asd application/astound

asf video/x-ms-asf

asn application/astound

asp application/x-asap

asx video/x-ms-asf

au audio/basic

avb application/octet-stream

avi video/x-msvideo

awb audio/amr-wb

bcpio application/x-bcpio

bin application/octet-stream

bld application/bld

bld2 application/bld2

bmp image/bmp

bpk application/octet-stream

bz2 application/x-bzip2

cal image/x-cals

ccn application/x-cnc

cco application/x-cocoa

cdf application/x-netcdf

cgi magnus-internal/cgi

chat application/x-chat

class application/octet-stream

clp application/x-msclip

cmx application/x-cmx

co application/x-cult3d-object

cod image/cis-cod

cpio application/x-cpio

cpt application/mac-compactpro

crd application/x-mscardfile

csh application/x-csh

csm chemical/x-csml

csml chemical/x-csml

css text/css

cur application/octet-stream

dcm x-lml/x-evm

dcr application/x-director

dcx image/x-dcx

dhtml text/html

dir application/x-director

dll application/octet-stream

dmg application/octet-stream

dms application/octet-stream

doc application/msword

dot application/x-dot

dvi application/x-dvi

dwf drawing/x-dwf

dwg application/x-autocad

dxf application/x-autocad

dxr application/x-director

ebk application/x-expandedbook

emb chemical/x-embl-dl-nucleotide

embl chemical/x-embl-dl-nucleotide

eps application/postscript

eri image/x-eri

es audio/echospeech

esl audio/echospeech

etc application/x-earthtime

etx text/x-setext

evm x-lml/x-evm

evy application/x-envoy

exe application/octet-stream

fh4 image/x-freehand

fh5 image/x-freehand

fhc image/x-freehand

fif image/fif

fm application/x-maker

fpx image/x-fpx

fvi video/isivideo

gau chemical/x-gaussian-input

gca application/x-gca-compressed

gdb x-lml/x-gdb

gif image/gif

gps application/x-gps

gtar application/x-gtar

gz application/x-gzip

hdf application/x-hdf

hdm text/x-hdml

hdml text/x-hdml

hlp application/winhlp

hqx application/mac-binhex40

htm text/html

html text/html

hts text/html

ice x-conference/x-cooltalk

ico application/octet-stream

ief image/ief

ifm image/gif

ifs image/ifs

imy audio/melody

ins application/x-NET-Install

ips application/x-ipscript

ipx application/x-ipix

it audio/x-mod

itz audio/x-mod

ivr i-world/i-vrml

j2k image/j2k

jad text/vnd.sun.j2me.app-descriptor

jam application/x-jam

jar application/java-archive

jnlp application/x-java-jnlp-file

jpe image/jpeg

jpeg image/jpeg

jpg image/jpeg

jpz image/jpeg

js application/x-javascript

jwc application/jwc

kjx application/x-kjx

lak x-lml/x-lak

latex application/x-latex

lcc application/fastman

lcl application/x-digitalloca

lcr application/x-digitalloca

lgh application/lgh

lha application/octet-stream

lml x-lml/x-lml

lmlpack x-lml/x-lmlpack

lsf video/x-ms-asf

lsx video/x-ms-asf

lzh application/x-lzh

m13 application/x-msmediaview

m14 application/x-msmediaview

m15 audio/x-mod

m3u audio/x-mpegurl

m3url audio/x-mpegurl

ma1 audio/ma1

ma2 audio/ma2

ma3 audio/ma3

ma5 audio/ma5

man application/x-troff-man

map magnus-internal/imagemap

mbd application/mbedlet

mct application/x-mascot

mdb application/x-msaccess

mdz audio/x-mod

me application/x-troff-me

mel text/x-vmel

mi application/x-mif

mid audio/midi

midi audio/midi

mif application/x-mif

mil image/x-cals

mio audio/x-mio

mmf application/x-skt-lbs

mng video/x-mng

mny application/x-msmoney

moc application/x-mocha

mocha application/x-mocha

mod audio/x-mod

mof application/x-yumekara

mol chemical/x-mdl-molfile

mop chemical/x-mopac-input

mov video/quicktime

movie video/x-sgi-movie

mp2 audio/x-mpeg

mp3 audio/x-mpeg

mp4 video/mp4

mpc application/vnd.mpohun.certificate

mpe video/mpeg

mpeg video/mpeg

mpg video/mpeg

mpg4 video/mp4

mpga audio/mpeg

mpn application/vnd.mophun.application

mpp application/vnd.ms-project

mps application/x-mapserver

mrl text/x-mrml

mrm application/x-mrm

ms application/x-troff-ms

mts application/metastream

mtx application/metastream

mtz application/metastream

mzv application/metastream

nar application/zip

nbmp image/nbmp

nc application/x-netcdf

ndb x-lml/x-ndb

ndwn application/ndwn

nif application/x-nif

nmz application/x-scream

nokia-op-logo image/vnd.nok-oplogo-color

npx application/x-netfpx

nsnd audio/nsnd

nva application/x-neva1

oda application/oda

oom application/x-AtlasMate-Plugin

pac audio/x-pac

pae audio/x-epac

pan application/x-pan

pbm image/x-portable-bitmap

pcx image/x-pcx

pda image/x-pda

pdb chemical/x-pdb

pdf application/pdf

pfr application/font-tdpfr

pgm image/x-portable-graymap

pict image/x-pict

pm application/x-perl

pmd application/x-pmd

png image/png

pnm image/x-portable-anymap

pnz image/png

pot application/vnd.ms-powerpoint

ppm image/x-portable-pixmap

pps application/vnd.ms-powerpoint

ppt application/vnd.ms-powerpoint

pqf application/x-cprplayer

pqi application/cprplayer

prc application/x-prc

proxy application/x-ns-proxy-autoconfig

ps application/postscript

ptlk application/listenup

pub application/x-mspublisher

pvx video/x-pv-pvx

qcp audio/vnd.qcelp

qt video/quicktime

qti image/x-quicktime

qtif image/x-quicktime

r3t text/vnd.rn-realtext3d

ra audio/x-pn-realaudio

ram audio/x-pn-realaudio

rar application/x-rar-compressed

ras image/x-cmu-raster

rdf application/rdf+xml

rf image/vnd.rn-realflash

rgb image/x-rgb

rlf application/x-richlink

rm audio/x-pn-realaudio

rmf audio/x-rmf

rmm audio/x-pn-realaudio

rmvb audio/x-pn-realaudio

rnx application/vnd.rn-realplayer

roff application/x-troff

rp image/vnd.rn-realpix

rpm audio/x-pn-realaudio-plugin

rt text/vnd.rn-realtext

rte x-lml/x-gps

rtf application/rtf

rtg application/metastream

rtx text/richtext

rv video/vnd.rn-realvideo

rwc application/x-rogerwilco

s3m audio/x-mod

s3z audio/x-mod

sca application/x-supercard

scd application/x-msschedule

sdf application/e-score

sea application/x-stuffit

sgm text/x-sgml

sgml text/x-sgml

sh application/x-sh

shar application/x-shar

shtml magnus-internal/parsed-html

shw application/presentations

si6 image/si6

si7 image/vnd.stiwap.sis

si9 image/vnd.lgtwap.sis

sis application/vnd.symbian.install

sit application/x-stuffit

skd application/x-Koan

skm application/x-Koan

skp application/x-Koan

skt application/x-Koan

slc application/x-salsa

smd audio/x-smd

smi application/smil

smil application/smil

smp application/studiom

smz audio/x-smd

snd audio/basic

spc text/x-speech

spl application/futuresplash

spr application/x-sprite

sprite application/x-sprite

spt application/x-spt

src application/x-wais-source

stk application/hyperstudio

stm audio/x-mod

sv4cpio application/x-sv4cpio

sv4crc application/x-sv4crc

svf image/vnd

svg image/svg-xml

svh image/svh

svr x-world/x-svr

swf application/x-shockwave-flash

swfl application/x-shockwave-flash

t application/x-troff

tad application/octet-stream

talk text/x-speech

tar application/x-tar

taz application/x-tar

tbp application/x-timbuktu

tbt application/x-timbuktu

tcl application/x-tcl

tex application/x-tex

texi application/x-texinfo

texinfo application/x-texinfo

tgz application/x-tar

thm application/vnd.eri.thm

tif image/tiff

tiff image/tiff

tki application/x-tkined

tkined application/x-tkined

toc application/toc

toy image/toy

tr application/x-troff

trk x-lml/x-gps

trm application/x-msterminal

tsi audio/tsplayer

tsp application/dsptype

tsv text/tab-separated-values

tsv text/tab-separated-values

ttf application/octet-stream

ttz application/t-time

txt text/plain

ult audio/x-mod

ustar application/x-ustar

uu application/x-uuencode

uue application/x-uuencode

vcd application/x-cdlink

vcf text/x-vcard

vdo video/vdo

vib audio/vib

viv video/vivo

vivo video/vivo

vmd application/vocaltec-media-desc

vmf application/vocaltec-media-file

vmi application/x-dreamcast-vms-info

vms application/x-dreamcast-vms

vox audio/voxware

vqe audio/x-twinvq-plugin

vqf audio/x-twinvq

vql audio/x-twinvq

vre x-world/x-vream

vrml x-world/x-vrml

vrt x-world/x-vrt

vrw x-world/x-vream

vts workbook/formulaone

wav audio/x-wav

wax audio/x-ms-wax

wbmp image/vnd.wap.wbmp

web application/vnd.xara

wi image/wavelet

wis application/x-InstallShield

wm video/x-ms-wm

wma audio/x-ms-wma

wmd application/x-ms-wmd

wmf application/x-msmetafile

wml text/vnd.wap.wml

wmlc application/vnd.wap.wmlc

wmls text/vnd.wap.wmlscript

wmlsc application/vnd.wap.wmlscriptc

wmlscript text/vnd.wap.wmlscript

wmv audio/x-ms-wmv

wmx video/x-ms-wmx

wmz application/x-ms-wmz

wpng image/x-up-wpng

wpt x-lml/x-gps

wri application/x-mswrite

wrl x-world/x-vrml

wrz x-world/x-vrml

ws text/vnd.wap.wmlscript

wsc application/vnd.wap.wmlscriptc

wv video/wavelet

wvx video/x-ms-wvx

wxl application/x-wxl

x-gzip application/x-gzip

xar application/vnd.xara

xbm image/x-xbitmap

xdm application/x-xdma

xdma application/x-xdma

xdw application/vnd.fujixerox.docuworks

xht application/xhtml+xml

xhtm application/xhtml+xml

xhtml application/xhtml+xml

xla application/vnd.ms-excel

xlc application/vnd.ms-excel

xll application/x-excel

xlm application/vnd.ms-excel

xls application/vnd.ms-excel

xlt application/vnd.ms-excel

xlw application/vnd.ms-excel

xm audio/x-mod

xml text/xml

xmz audio/x-mod

xpi application/x-xpinstall

xpm image/x-xpixmap

xsit text/xml

xsl text/xml

xul text/xul

xwd image/x-xwindowdump

xyz chemical/x-pdb

yz1 application/x-yz1

z application/x-compress

zac application/x-zaurus-zac

zip application/zip
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: