学习Android之setDataAndType(利用第三方应用程序打开各种文件)

Posted 心宽何处不桃源

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习Android之setDataAndType(利用第三方应用程序打开各种文件)相关的知识,希望对你有一定的参考价值。

案例:

首先,我们先看看android如何利用第三方应用程序打开PDF文件

<span style="font-size:18px;">      File tempFile = new File(path);
        if (!tempFile.exists()) 
            return;
        
        try 
     *//*       Intent intent = new Intent("android.intent.action.VIEW");
            intent.addCategory("android.intent.category.DEFAULT");*//*
            Intent intent = new Intent(Intent.ACTION_VIEW);
            Uri data = Uri.fromFile(tempFile);
            intent.setDataAndType(data, "application/pdf");
            intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(intent);
            finish();
         catch (ActivityNotFoundException ae) 
            _projectUploadDetails_WebView.loadUrl("");
            try 
                _projectUploadDetails_WebView.removeView(docView);
             catch (Exception e) 
            

            if (path.toLowerCase().endsWith(".pdf")) 
                OpenPdf(path);
            
        </span>

其中我们看到了intent

Intent设置setDataAndType,对跳转的传输的数据和类型进行设置。


其中我们还要分清uri url urn  path的区别

URI,是uniform resource identifier,统一资源标识符,用来唯一的标识一个资源。

URL是uniform resource locator,统一资源定位器,它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源。

URN,uniform resource name,统一资源命名,是通过名字来标识资源。

URI是以一种抽象的,高层次概念定义统一资源标识,而URL和URN则是具体的资源标识的方式。URL和URN都是一种URI。

总结:URL是一种具体的URI,它不仅唯一标识资源,而且还提供了定位该资源的信息。URI是一种语义上的抽象概念,可以是绝对的,也可以是相对的,而URL则必须提供足够的信息来定位。

path  文件保存路径

我们可以根据以下的数据类型选择

 
            //后缀名,MIME类型 
            ".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", 
            ".docx",   "application/vnd.openxmlformats-officedocument.wordprocessingml.document", 
            ".xls",    "application/vnd.ms-excel",  
            ".xlsx",   "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", 
            ".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", 
            ".pptx",   "application/vnd.openxmlformats-officedocument.presentationml.presentation", 
            ".prop",   "text/plain", 
            ".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/plain", 
            ".z",  "application/x-compress", 
            ".zip",    "application/x-zip-compressed", 
            "",        "*/*"   
        ; 


关键词:Intent   Uri   setDataAndType(data,type);





以上是关于学习Android之setDataAndType(利用第三方应用程序打开各种文件)的主要内容,如果未能解决你的问题,请参考以下文章

Android学习笔记之,调用系统图库,添加自定义字体,屏幕截图

java android打开各种文件(setDataAndType)

Android apk安装代码

Android自带图片裁剪

Android的静默安装

播放视频的Android意图?