android 開啟各種檔案 intent.setDataAndType
Java程式碼 /**
* 開啟檔案
* @param file
*/
private void openFile(File file){
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*/Uri.fromFile(file), type);
//跳轉
startActivity(intent); //這裡最好try一下,有可能會報錯。 //比如說你的MIME型別是開啟郵箱,但是你手機裡面沒裝郵箱客戶端,就會報錯。
}
/**
* 根據檔案字尾名獲得對應的MIME型別。
* @param file
*/
private String getMIMEType(File file) {
String type="*/*";
String fName = file.getName();
//獲取字尾名前的分隔符"."在fName中的位置。
int dotIndex = fName.lastIndexOf(".");
if(dotIndex < 0){
return type;
}
/* 獲取檔案的字尾名*/
String end=fName.substring(dotIndex,fName.length()).toLowerCase();
if(end=="")return type;
//在MIME和檔案型別的匹配表中找到對應的MIME型別。
for(int i=0;i if(end.equals(MIME_MapTable[i][0]))
type = MIME_MapTable[i][1];
}
return type;
}
MIME_MapTable是所有檔案的字尾名所對應的MIME型別的一個String陣列:
Java程式碼 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"},
{".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"},
{"", "*/*"}
};
這個MIME型別可能不完善待後續
1. Intent open a picture file public:
Java程式碼
Intentintent=newIntent("android.intent.action.VIEW");
intent.addCategory("android.intent.category.DEFAULT");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uriuri=Uri.fromFile(new
File("/mnt/sdcard/images/001041580.jpg"));
intent.setDataAndType(uri,"image/*");
this.startActivity(intent);
2. Intent to open a PDF file:
Java程式碼
Intentintent=newIntent("android.intent.action.VIEW");
intent.addCategory("android.intent.category.DEFAULT");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uriuri=Uri.fromFile(new
File("file:///android_asset/helphelp.pdf"));
intent.setDataAndType(uri,"application/pdf");
this.startActivity(intent);
3. Intent to open a text file:
Java程式碼
Intentintent=newIntent("android.intent.action.VIEW");
intent.addCategory("android.intent.category.DEFAULT");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
if(paramBoolean)
{
Uriuri1=Uri.parse(param);
intent.setDataAndType(URI1,"text/plain");
}
else
{
Uriuri=Uri.fromFile(newFile("/mnt/sdcard/hello.txt"));
intent.setDataAndType(URI2,"text/plain");
}
this.startActivity(intent);
4. Intent to open the audio file:
Java程式碼
Intentintent=newIntent("android.intent.action.VIEW");
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("oneshot",0);
intent.putExtra("configchange",0);
Uriuri=Uri.fromFile(newFile("/mnt/sdcard/ren.mp3"));
intent.setDataAndType(uri,"audio/*");
this.startActivity(intent);
5. Intent to open the video file:
Java程式碼
Intentintent=newIntent("android.intent.action.VIEW");
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("oneshot",0);
intent.putExtra("configchange",0);
Uriuri=Uri.fromFile(newFile("/mnt/sdcard/ice.avi"));
intent.setDataAndType(uri,"video/*");
this.startActivity(intent);
6. Intent to open the CHM file:
Java程式碼
Intentintent=newIntent("android.intent.action.VIEW");
intent.addCategory("android.intent.category.DEFAULT");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uriuri=Uri.fromFile(newFile("/mnt/sdcard/ice.chm"));
intent.setDataAndType(uri,"application/x-chm");
this.startActivity(intent);
7. Intent to open a Word document:
Java程式碼
Intentintent=newIntent("android.intent.action.VIEW");
intent.addCategory("android.intent.category.DEFAULT");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uriuri=Uri.fromFile(newFile("/system/etc/help.doc"));
intent.setDataAndType(uri,"application/msword");
this.startActivity(intent);
8. Android Excel intent:
Java程式碼
Intentintent=newIntent("android.intent.action.VIEW");
intent.addCategory("android.intent.category.DEFAULT");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uriuri=Uri.fromFile(newFile("/mnt/sdcard/Book1.xls"));
intent.setDataAndType(uri,"application/vnd.ms-excel");
this.startActivity(intent);
9. Intent to open the PPT file:
Java程式碼
Intentintent=newIntent("android.intent.action.VIEW");
intent.addCategory("android.intent.category.DEFAULT");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uriuri=Uri.fromFile(new
File("/mnt/sdcard/download/Android_PPT.ppt"));
intent.setDataAndType(uri,"application/vnd.ms-powerpoint");
this.startActivity(intent);
10. Display Html page::
Java程式碼
Uriuri=Uri.parse("http://www.google.com");
Intentintent=newIntent(Intent.ACTION_VIEW,uri);
this.startActivity(intent);
11. Show map:
Java程式碼
Uriuri=Uri.parse("geo:38.899533,-77.036476");
Intentintent=newIntent(Intent.Action_VIEW,uri);
this.startActivity(intent);
12. Call the dialer:
Java程式碼
Uriuri=Uri.parse("tel:xxxxxx");
Intentintent=newIntent(Intent.ACTION_DIAL,uri);
this.startActivity(intent);
13. Call :
Java程式碼
Uriuri=Uri.parse("tel:xxxxxx");
Intentit=newIntent(Intent.ACTION_CALL,uri);
this.startActivity(intent);
/*permission:
*/
14. Call to send text messages of the program :
Java程式碼
Intentintent=newIntent(Intent.ACTION_VIEW);
intent.putExtra("sms_body","TheSMStext");
intent.setType("vnd.android-dir/mms-sms");
this.startActivity(intent);
15. Send SMS :
Java程式碼
Uriuri=Uri.parse("smsto:0800000123");
Intentintent=newIntent(Intent.ACTION_SENDTO,uri);
intent.putExtra("sms_body","TheSMStext");
this.startActivity(intent);
16. Send MMS :
Java程式碼
Uriuri=Uri.parse("content://media/external/images/media/23");
Intentintent=newIntent(Intent.ACTION_SEND);
intent.putExtra("sms_body","sometext");
intent.putExtra(Intent.EXTRA_STREAM,uri);
intent.setType("image/png");
this.startActivity(intent);
17. Send an Email :
Java程式碼
Uriuri=Uri.parse("mailto:[email protected]");
Intentintent=newIntent(Intent.ACTION_SENDTO,uri);
this.startActivity(intent);
18. Send an Email with body :
Java程式碼
Intentintent=newIntent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_EMAIL,"[email protected]");
intent.putExtra(Intent.EXTRA_TEXT,"Theemailbodytext");
intent.setType("text/plain");
this.startActivity(
Intent.createChooser(intent,"ChooseEmailClient"));
19. Send an Email with body,to,cc :
Java程式碼
Intentintent=newIntent(Intent.ACTION_SEND);
String[]tos={"[email protected]"};
String[]ccs={"[email protected]"};
intent.putExtra(Intent.EXTRA_EMAIL,tos);
intent.putExtra(Intent.EXTRA_CC,ccs);
intent.putExtra(Intent.EXTRA_TEXT,"Theemailbodytext");
intent.putExtra(Intent.EXTRA_SUBJECT,"Theemailsubjecttext");
intent.setType("message/rfc822");
this.startActivity(
Intent.createChooser(intent,"ChooseEmailClient"));
20. Send an Email with attachments :
Java程式碼
Intentintent=newIntent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_SUBJECT,"Theemailsubjecttext");
intent.putExtra(Intent.EXTRA_STREAM,"file:///sdcard/mysong.mp3");
sendIntent.setType("audio/mp3");
this.startActivity(
Intent.createChooser(intent,"ChooseEmailClient"));
21. Uninstall the program :
Java程式碼
Uriuri=Uri.fromParts("package",strPackageName,null);
Intentintent=newIntent(Intent.ACTION_DELETE,uri);
this.startActivity(
Intent.createChooser(intent,"ChooseEmailClient"));
22. Install the apk :
Java程式碼
UriinstallUri=Uri.fromParts("package","xxx",null);
returnIt=newIntent(Intent.ACTION_PACKAGE_ADDED,installUri);
this.startActivity(returnIt);
23. Search applications :
Java程式碼
Uriuri=Uri.parse("market://search?Q=pname:pkg_name");
Intentintent=newIntent(Intent.ACTION_VIEW,uri);
this.startActivity(intent);
//Wherepkg_nameisthefullpackagepathforanapplication
24. Google Search Launch Web Browser :
Java程式碼
相關推薦
android 開啟各種檔案 intent.setDataAndType
Java程式碼 /** * 開啟檔案 * @param file */ private void openFile(File file){ Intent intent = new Intent(); intent.addFlags(I
Android開啟各種檔案的MIME TYPE-setDataAndType函式中的Type關聯
MIME:全稱Multipurpose Internet Mail Extensions,多功能Internet 郵件擴充服務。它是一種多用途網際郵件擴充協議,在1992年最早應用於電子郵件系統,但後來也應用到瀏覽器。MIME型別就是設定某種副檔名的檔案用一種應用程式來開啟的方式型別,當該副檔名檔案被訪問
android開啟各種檔案的intent
import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.net.Uri.Builder; import java.io.File; import android.con
android獲取一個用於開啟各種檔案的intent
//android獲取一個用於開啟文字檔案的intent public static Intent getTextFileIntent( String param, boolean paramBoolean) { Intent intent = new Intent
android用於開啟各種檔案的intent(轉)
import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.net.Uri.Builder; import java.io
android用於開啟各種檔案的intent,包括以下檔案PDF,PPT,WORD,EXCEL,CHM,HTML,TEXT,AUDIO,VIDE(程式碼待完善)
import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.net.Uri.Builder;import java.io.File;impor
Android--用intent開啟各種檔案
import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.net.Uri.Builder; import java.io.File;
Android開啟各種型別的檔案方法總結
很簡單,通過呼叫系統的intent,我們可以開啟各種檔案,不熟悉的朋友可以瞭解下action、datatype、uri的相關知識。 通用方法如下: public static Intent openFile(String filePath){ File fil
用intent開啟各種檔案 開啟sd卡路徑 開啟系統目錄...
在其他類中呼叫MyIntent類中的方法,例如: Intent it = MyIntent .getHtmlFileIntent("/sdcard/tutorial.html");//對應你的檔名 startActivity( it ); //可用於獲取開
Notification的使用以及Intent開啟各種檔案
一:Notification的使用 使用步驟: 流程模組: 第一步: 建立一個通知欄的Builder構造類 (Create a Notification Builder) 第二步: 定義通知欄的Action (Define the N
Intent開啟各種檔案
1.Android開啟系統播放器:Uri uri = Uri.parse(url);// Uri uri = Uri.parse("rtsp://10.103.131.23:554/28960004/j04.mp4");
android的各種檔案目錄
今天學習FileProvider,裡面就涉及到了內部儲存,外部儲存。就去查了一下,這裡整理一下。 內部儲存: 主要涉及到的方法:context.getCacheDir()和context.getFilesDir() context.getCacheDi
android Intent開啟各種型別檔案
import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.net.Uri.Builder; import java.io.File;
android獲取一個用於開啟Word檔案的intent
最近在做專案使用webview顯示後,有寫文件需要開啟,找了一些資料,研究了一下,弄出來了! 下面貼一下主要程式碼: param為文件的主要路徑 public static Intent getWordFileIntent(String
android 應用元件[通用 Intent---開啟特定型別的檔案] 十二
在 Android 4.4 或更高版本上執行時,您可以不必檢索必須匯入應用的檔案副本(使用 操作),而是使用 操作並指定 MIME 型別,請求開啟由另一個應用管理的檔案。如果還需要允許使用者建立應用可寫入的新文件,可改用 操作。例如, Intent 允許使用者選
android intent開啟各種格式文件方法
我們開發的時候經常碰到開啟各種文件,目前的應用處理方式 基本都是依賴於三方軟體開啟 ,而不是在應用內開啟,因為檔案格式有很多,倘若都在應用內開啟的話,肯定要增加很大的開發時間和開發成本,而且實現效果沒有一些三方的app實現的效果好。 話不多說,貼上程式碼 工具類 impo
Android studio 或java開啟txt檔案
剛剛學習碎片知識,顯示的內容如果是txt該如何做呢?這就需要開啟檔案了,話不多說,上程式碼。 我的檔案在: a為標題檔案,a0為每個標題的內容檔案 結果如下圖: 我的a和a0txt 由於新聞標題較多,新聞內容較多,就考慮用txt來裝
Android 版本更新之開啟apk檔案的前生今世
現在APP都少不了的一個功能就是版本更新,檢測到有新版,從伺服器下載下來APK,然後安裝,今天就來聊一聊它。 原始碼地址:github [Android6.0之前] 首先是許可權 <uses-permission android:name="android.
Android專案需要使用的各種檔案
任何一個新建的專案都會預設使用Android模式的專案結構,但這並不是專案真實的目錄結構,而是被Android Studio轉換過的這個模式結構比較簡潔明瞭,適合進行快速開發,將其切換為Project模式就是專案的真實結構了。 一.首先就是.grad
Android 手機儲存檔案各種路徑
String cacheDir = context.getExternalCacheDir().getPath(); /storage/emulated/0/Android/data/應用名稱/cache 一般放一些長時間儲存的資料 String filesDir = context.ge