Android平台





自定义文件关联指的是打开一个你自己创建的文件,例如后缀是(.abc)。



首先我先介绍下常见文件关联,例如.txt、.jpg。



在Android中,任何文件类型或者MIME类型的关联性打开,是通过广播Intent来实现的。例如,你如果想要注册自己为.txt类型的查看器或者图片查看器,必须为你的Activity加入intent-filter来获取到一个来源所发出的Intent Broadcasting(广播),从而达到关联的目的。






首先我们来看一下data属性里的值



<intent-filter . . . >
<data
android:host="string"
android:mimeType="string"
android:path="string"
android:pathPattern="string"
android:pathPrefix="string"
android:port="string"
android:scheme="string"/>
</intent-filter>
我们可以通过URL启动相应data属性描述的Activity。
URL:
scheme://host:port/path or pathPrefix or pathPattern
属性:
android:host
URL的主机部分



android:mimeType



MIME 媒体类型,例如image/jpeg或者text/xml。





一个合法的File Manager(文件管理器)在执行Open动作时,应该是发出一个intent.ACTION_VIEW。所以你的intent-filter应该是这样子的:



<activity android:name=".Demo1Activity" >



<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="file" />
<data android:mimeType="*/*" />
<data android:host="*" />
<data android:pathPattern=".*.txt" />
</intent-filter>



</activity>



<activity android:name=".Demo2Activity" >


<intent-filter>

<action android:name="android.intent.action.VIEW" />

<category android:name="android.intent.category.DEFAULT" />

<category android:name="android.intent.category.BROWSABLE" />

<data android:scheme="content" />

<data android:host="*" />

<data android:pathPattern=".*.txt" />

</intent-filter>


</activity>






在这里,你必须同时申明android:scheme, android:host, android:pathPattern, 方可令pathPattern正确生效。第一个文件关联指的是可以匹配file://mnt/sdcard/12345.txt这样的请求,启动Demo1Activity,第二个文件关联指的是可以匹配content://com.android.test/sdcard/123.txt 这样的请求,在文件管理器中点击这类的txt,可以启动Demo2Activity。如果你有需要,你可以加入android:mimeType来限定文件类型。例如你想打开jpg文件时启动你的activity,这是可以在<intent-filter></intent-filter>里添加<data android:mimeType="image/jpeg" />,具体的mimeType有哪些,你可以上网找,这里我就不一一列举了。






最后我们回到正题,怎么关联自定义文件,我想看到这里大家应该也有思路的,就是修改pathPattern=".*.abc",注意,由于这里打开的是文件,所以android:scheme="file"。这样就可以打开后缀是.adc文件,启动相应的activity。

=================================================


在manifest文件里->activity 添加 
  
 
 <intent-filter>
      <action android:name="android.intent.action.VIEW" />
      <category android:name="android.intent.category.DEFAULT" />
      <data android:mimeType="*/*">
 </intent-filter>

这样就把当前程序注册为 可以打开/查看所有类型的文件. 或者要查看jpeg, mimeType要改为: image/jpeg

当在文件管理器里点击任何文件, 系统都会试图去执行你的程序.

 

--------------------------------------------分割线----------------------------------------

一个合法的File Manager在执行Open动作时,应该是发出一个Intent.VIEW Action。所以你的intent-filter应该是这样子的:


view plain copy to clipboard print ?



    1. <intent-filter>  
    2. <action android:name="android.intent.action.VIEW" />  
    3. <category android:name="android.intent.category.DEFAULT" />  
    4. <category android:name="android.intent.category.BROWSABLE" />  
    5. <data android:scheme="file" />  
    6. <data android:mimeType="*/*" />  
    7. <data android:host="*" />  
    8. <data android:pathPattern=".*\\.txt" />  
    9. </intent-filter>  
    10. <intent-filter>  
    11. <action android:name="android.intent.action.VIEW" />  
    12. <category android:name="android.intent.category.DEFAULT" />  
    13. <category android:name="android.intent.category.BROWSABLE" />  
    14. <data android:scheme="content" />  
    15. <data android:host="*" />  
    16. <data android:pathPattern=".*\\.txt" />  
    17. </intent-filter>   
     
      
    在这当中,data块缺一不可,你必须同时申明android:scheme, android:host, android:pathPattern, 方可令pathPattern正确生效。对于content scheme,将会匹配诸如:content://com.metago.astro.filesystem/sdcard/txt /pg17155.txt 这样的请求,你的Activity将可以有效地打开这样的txt文件。对于file scheme,大致会匹配诸如:file:///sdcard/txt/pg17155.txt这样的请求,并且,如果有必要,你可以加入 android:mimeType限定。 
      
     也就是说,尽管Android SDK的层面上,你不可能了解到哪些mime已经注册,一个自定义的mime如何注册,但对于基础系统(linux os layer)来说,内置的mime type还是存在的,这方面你可以参考Intent SDK文档和Notebook SDK Sample获得一鳞半爪的信息。
     对于你自己想要关联的文件后缀,则应该使用上面的intent-filter组合来完成关联。
     一旦intent-filter关联完成,在Activity的onCreate,onNewIntent中将可通过:
     Intent intent=getIntent();
     Uri uri=(Uri)intent.getData();
     String path=uri.getPath(); 
     序列获得关联打开文件的绝对路径。 这样的方法在ASTRO文件管理器中测试通过,并且在另一个测试project中进行了测试和证明机制有效。不过,在Root Explorer,And Explorer中均失败了,原因正在于这几个浏览器并不执行符合Android SDK规范的File Open操作。
     可见,随意性是值得注意的坏招数。 --------------------------------------------分割线----------------------------------------


    我们看一下 android 文件的mime类型:

    aar android 关联 安卓关联_html



    {".3gp", "video/3gpp"},
      {".apk", "application/vnd.android.package-archive"},
      {".asf", "video/x-ms-asf"},
      {".avi", "video/x-msvideo"},
      {".bin", "application/octet-stream"},
      {".bmp", "image/bmp"},
      {".c", "text/plain"},
      {".class", "application/octet-stream"},
      {".conf", "text/plain"},
      {".cpp", "text/plain"},
      {".doc", "application/msword"},
      {".exe", "application/octet-stream"},
      {".gif", "image/gif"},
      {".gtar", "application/x-gtar"},
      {".gz", "application/x-gzip"},
      {".h", "text/plain"},
      {".htm", "text/html"},
      {".html", "text/html"},
      {".jar", "application/java-archive"},
      {".java", "text/plain"},
      {".jpeg", "image/jpeg"},
      {".jpg", "image/jpeg"},
      {".js", "application/x-javascript"},
      {".log", "text/plain"},
      {".m3u", "audio/x-mpegurl"},
      {".m4a", "audio/mp4a-latm"},
      {".m4b", "audio/mp4a-latm"},
      {".m4p", "audio/mp4a-latm"},
      {".m4u", "video/vnd.mpegurl"},
      {".m4v", "video/x-m4v"},
      {".mov", "video/quicktime"},
      {".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"},
      {".msg", "application/vnd.ms-outlook"},
      {".ogg", "audio/ogg"},
      {".pdf", "application/pdf"},
      {".png", "image/png"},
      {".pps", "application/vnd.ms-powerpoint"},
      {".ppt", "application/vnd.ms-powerpoint"},
      {".prop", "text/plain"},
      {".rar", "application/x-rar-compressed"},
      {".rc", "text/plain"},
      {".rmvb", "audio/x-pn-realaudio"},
      {".rtf", "application/rtf"},
      {".sh", "text/plain"},
      {".tar", "application/x-tar"},
      {".tgz", "application/x-compressed"},
      {".txt", "text/plain"},
      {".wav", "audio/x-wav"},
      {".wma", "audio/x-ms-wma"},
      {".wmv", "audio/x-ms-wmv"},
      {".wps", "application/vnd.ms-works"},
      //{".xml", "text/xml"},   {".xml", "text/plain"},
      {".z", "application/x-compress"},
      {".zip", "application/zip"},
      {"", "*/*"}



    aar android 关联 安卓关联_html



     

    另:

    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