android intent MIME type
MIME:全稱Multipurpose Internet Mail Extensions,多功能Internet 郵件擴充服務。它是一種多用途網際郵件擴充協議,在1992年最早應用於電子郵件系統,但後來也應用到瀏覽器。MIME型別就是設定某種副檔名的檔案用一種應用程式來開啟的方式型別,當該副檔名檔案被訪問的時候,瀏覽器會自動使用指定應用程式來開啟。多用於指定一些客戶端自定義的檔名,以及一些媒體檔案開啟方式。
在Android中通過檔案的MIME型別來判斷有哪些應用程式可以處理這些檔案,並使用其中的某一個應用程式(如果有多個可選的應用程式,則使用者必須指定一個)處理之。
我在寫android資源管理器(檔案瀏覽器)的時候,希望能在資源管理器的中實現開啟檔案的操作,此時就需要用到檔案的MIME型別。
實現方法:
private String getMIMEType(File file)
{
String type="*
String end=fName.substring(dotIndex,fName.length()).toLowerCase();
if(end=="")return type;
//在MIME和檔案型別的匹配表中找到對應的MIME型別。
for(int i=0;i<MIME_MapTable.length;i++){
if(end.equals(MIME_MapTable[i][0]))
type = MIME_MapTable[i][1];
}
return type;
}
private void openFile(File file){
//Uri uri = Uri.parse("file://"+file.getAbsolutePath());
Intent intent = new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//設定intent的Action屬性
intent.setAction(Intent.ACTION_VIEW);
//獲取檔案file的MIME型別
String type = getMIMEType(file);
//設定intent的data和Type屬性。
intent.setDataAndType(Uri.fromFile(file), type);
//跳轉
startActivity(intent);
}
現在就差一個MIME型別和檔案型別的匹配表了。
------------------------------- 我是背景分割線 ------------------------------------------
"檔案型別——MIME型別"的匹配表:
//建立一個MIME型別與檔案字尾名的匹配表
private final String[][] MIME_MapTable={
//{字尾名, 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"},
{".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"},
{"", "*/*"}
};
這個表目前還不全,上面的只是一些常用的檔案型別,對於其他的檔案型別和MIME的匹配值我會在以後更新。
相關推薦
android intent MIME type
MIME:全稱Multipurpose Internet Mail Extensions,多功能Internet 郵件擴充服務。它是一種多用途網際郵件擴充協議,在1992年最早應用於電子郵件系統,但後來也應用到瀏覽器。MIME型別就是設定某種副檔名的檔案用一種應用程式來開啟的方式型別,當該副檔名檔案被訪問的
android intent.setType("type");的含義
intent.setType(“image/*”); //intent.setType(“audio/*”); //選擇音訊 //intent.setType(“video/*”); //選擇視訊 (mp4 3gp 是android支援的視訊格式) //i
react-native run-android Starting: Intent Error type 3 Error: Activity class does not exist
gradle 問題 exist native pack details .net 容易 安卓 使用”react-native run-android”命令運行android應用時,如果常常出現如下錯誤: Starting the app (/home/xxx/soft/
Android 傳送郵件異常:no object DCH for MIME type multipart/mixed
一、問題描述 維護一個Android專案,專案裡整合有郵箱功能,gradle新增有: implementation 'com.sun.mail:android-mail:1.5.6' implementation 'com.sun.mail:android-activation:1.5.6'
Android開啟各種檔案的MIME TYPE-setDataAndType函式中的Type關聯
MIME:全稱Multipurpose Internet Mail Extensions,多功能Internet 郵件擴充服務。它是一種多用途網際郵件擴充協議,在1992年最早應用於電子郵件系統,但後來也應用到瀏覽器。MIME型別就是設定某種副檔名的檔案用一種應用程式來開啟的方式型別,當該副檔名檔案被訪問
解決“Resource interpreted as Document but transferred with MIME type application/json”問題
ati str pos 單位 try transfer html subst clas 在上傳圖片時,使用ajax提交,返回的數據格式為json。在測試時發現IE瀏覽器中,上傳圖片後,沒有顯示圖片,而是彈出一個提示:是否保存UploadImg.json文件;而在其他瀏覽器中
Android--Intent組件帶參傳遞與返回
puts 例子 ast pause onstop 圖標 訪問 數據頁面 .com Android 是 單例模式: 表示 application 唯一的。每個應用被啟動的時候,其實是 application 被創建。 Context 上下文: context 是
Is the MIME type 'image/jpg' the same as 'image/jpeg'?
xpl nis text www. nco ima www see ref https://stackoverflow.com/questions/33692835/is-the-mime-type-image-jpg-the-same-as-image-jpeg
nginx: [warn] duplicate MIME type "text/html"錯誤
去掉 python ica gin cal ucc nginx -t 默認 gzip 檢查配置文件時提示:nginx: [warn] duplicate MIME type "text/html" in /home/web/nginx/inc/gzip.conf:9 [r
Spring Boot 整合 Apache Solr 異常:Expected mime type application/octet-stream but got text/html 的解決.
註釋 info 過時 查看 異常 dea 沒有 時間 發的 解決方法:Spring Data Solr 3.0 以上版本 將@SolrDocument(solrCoreName = "new_core") 中的solrCoreName 字段改為使用collection字段
什麽是 MIME TYPE?(轉)
clas RoCE content ons 標準類型 data excel 不同的應用 resp 什麽是 MIME TYPE? 一、 首先,我們要了解瀏覽器是如何處理內容的。在瀏覽器中顯示的內容有 HTML、有 XML、有 GIF、還有 Flash ……那麽,瀏覽器是如何區
Android Intent 隱式
應該 abcd 其他 html 防止 code .com activity and 隱式intent xml <!--在意圖過濾器中--> <intent-filter> <action android:name="android.in
Android intent 隱式用法
通過隱式用法從MainActivity跳轉到SecondActivity manifests <activity android:name=".Next"> <intent-filter> <ca
【odoo10】Refused to execute script from '*' because its MIME type ('text/plain') is not executable
軟體環境:window10 編譯環境:python2.7.9,pycharm4.5.3 ,nodejs6.9 問題描述:當開發環境搭建成功,啟動odoo9或者odoo10後(已建立資料庫),登陸訪問報錯如下 web:1 Refused to execute script from '*/w
Android Intent使用舉例
1、篩選本地檔案,通過uri獲取檔案的路徑 /** * 選擇本地檔案,獲得檔案的 uri 。 * 通過setType可以設定檔案型別:比如篩選音視訊檔案、圖片等等 */ Intent intent = new Intent(Intent.ACTION_GET_CONTENT); in
its MIME type ('text/html') is not executable, and strict MIME type checking is enabled.
今天遇到的問題,使用SpringBoot 的時候,加上 SpringSecurity 之後,頁面的請求總是會報錯its MIME type ('text/html') is not executable, and strict MIME type checking is enabl
python MIME Type是什麼?如何獲取檔案的MIME Type?
MIME Type是什麼? 簡單來說:資源的媒體型別 MIME(Multipurpose Internet Mail Extensions)多用途網際網路郵件擴充套件型別。是設定某種副檔名的檔案用一種應用程式來開啟的方式型別,當該副檔名檔案被訪問的時候,瀏覽器會自動使用指
Android Intent 最佳使用
今天發表我的第一篇文章。 在實際的開發中,肯定會用到Intent 跳轉頁面。ingtent 跳轉分為靜態跳轉和動態跳轉。 各有各的好。有的專案的架構靜態的Intent 比較好,有的專案的架構用動態的Intent比較好。個人覺得都挺好,只是人用的好與不好。 我今天和大家分
springDataSolr報錯Expected mime type application/octet-stream but got text/html.
org.springframework.data.solr.UncategorizedSolrException: Expected mime type application/octet-stream but got text/html. Caused by: org.a
Resource interpreted as Stylesheet but transferred with MIME type text/html:解釋
這種錯誤,基本上各個階段,由各個階段的出錯型別,目前,我接受的比較淺,引起方式是,用註解配置servlet對映的時候引起的,我的是因為css樣式沒有引入引起的, 經過大神的指點,原因是找出了,單個人能力有限,理解有限。看原因 @WebServlet("/") //看這裡 pub