博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android(java)学习笔记86:Android提供打开各种文件的API接口:setDataAndType
阅读量:5052 次
发布时间:2019-06-12

本文共 12490 字,大约阅读时间需要 41 分钟。

1. Android 打开各种文件(setDataAndType)

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

 MIME_MapTable是所有文件的后缀名所对应的MIME类型的一个String数组:

    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"}, {
"", "*/*"} };

1. Intent open a picture file public: 

Intent intent = new Intent("android.intent.action.VIEW");  intent.addCategory("android.intent.category.DEFAULT");  intent.addFlags (Intent.FLAG_ACTIVITY_NEW_TASK);  Uri uri = Uri.fromFile(new File("/mnt/sdcard/images/001041580.jpg"));  intent.setDataAndType (uri, "image/*");  this.startActivity(intent);

 

2. Intent to open a PDF file:

Intent intent = new Intent("android.intent.action.VIEW");  intent.addCategory("android.intent.category.DEFAULT");  intent.addFlags (Intent.FLAG_ACTIVITY_NEW_TASK);  Uri uri = Uri.fromFile(new File("file:///android_asset/helphelp.pdf"));  intent.setDataAndType (uri, "application/pdf");  this.startActivity(intent);

 

3. Intent to open a text file:

Intent intent = new Intent("android.intent.action.VIEW");  intent.addCategory("android.intent.category.DEFAULT");  intent.addFlags (Intent.FLAG_ACTIVITY_NEW_TASK);  if (paramBoolean)  {  Uri uri1 = Uri.parse (param);  intent.setDataAndType (URI1, "text/plain");  }  else  {  Uri uri = Uri.fromFile(new File("/mnt/sdcard/hello.txt"));  intent.setDataAndType (URI2, "text/plain");  }  this.startActivity(intent);

 

4. Intent to open the audio file:

Intent intent = new Intent("android.intent.action.VIEW");  intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);  intent.putExtra ("oneshot", 0);  intent.putExtra ("configchange", 0);  Uri uri = Uri.fromFile(new File("/mnt/sdcard/ren.mp3"));  intent.setDataAndType (uri, "audio/*");  this.startActivity(intent);

 

5. Intent to open the video file:

Intent intent = new Intent("android.intent.action.VIEW");  intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);  intent.putExtra ("oneshot", 0);  intent.putExtra ("configchange", 0);  Uri uri = Uri.fromFile(new File("/mnt/sdcard/ice.avi"));  intent.setDataAndType (uri, "video/*");  this.startActivity(intent);

 

6. Intent to open the CHM file:

Intent intent = new Intent("android.intent.action.VIEW");  intent.addCategory("android.intent.category.DEFAULT");  intent.addFlags (Intent.FLAG_ACTIVITY_NEW_TASK);  Uri uri = Uri.fromFile(new File("/mnt/sdcard/ice.chm"));  intent.setDataAndType (uri, "application / x-chm");  this.startActivity(intent);

 

7. Intent to open a Word document:

Intent intent = new Intent("android.intent.action.VIEW");  intent.addCategory("android.intent.category.DEFAULT");  intent.addFlags (Intent.FLAG_ACTIVITY_NEW_TASK);  Uri uri = Uri.fromFile(new File("/system/etc/help.doc"));  intent.setDataAndType(uri, "application/msword");  this.startActivity(intent);

 

8. Android Excel intent:

Intent intent = new Intent("android.intent.action.VIEW");  intent.addCategory("android.intent.category.DEFAULT");  intent.addFlags (Intent.FLAG_ACTIVITY_NEW_TASK);  Uri uri = Uri.fromFile(new File("/mnt/sdcard/Book1.xls"));  intent.setDataAndType (uri, "application/vnd.ms-excel");  this.startActivity(intent);

 

9. Intent to open the PPT file:

Intent intent = new Intent("android.intent.action.VIEW");  intent.addCategory("android.intent.category.DEFAULT");  intent.addFlags (Intent.FLAG_ACTIVITY_NEW_TASK);  Uri uri = Uri.fromFile(new  File("/mnt/sdcard/download/Android_PPT.ppt"));  intent.setDataAndType (uri, "application/vnd.ms-powerpoint");  this.startActivity(intent);

 

10.Display Html page:

Uri uri = Uri.parse ("http://www.google.com");   Intent intent = new Intent (Intent.ACTION_VIEW, uri);   this.startActivity(intent);

 

11. Show map:

Uri uri = Uri.parse ("geo: 38.899533, -77.036476");   Intent intent = new Intent (Intent.Action_VIEW, uri);   this.startActivity(intent);

 

12. Call the dialer:

Uri uri = Uri.parse ("tel: xxxxxx");   Intent intent = new Intent (Intent.ACTION_DIAL, uri);   this.startActivity(intent);

 

13. Call :

Uri uri = Uri.parse ("tel: xxxxxx");   Intent it = new Intent (Intent.ACTION_CALL, uri);    this.startActivity(intent);  /*permission:  
*/

 

14. Call to send text messages of the program :

Intent intent = new Intent (Intent.ACTION_VIEW);  intent.putExtra("sms_body", "The SMS text");  intent.setType("vnd.android-dir/mms-sms");  this.startActivity(intent);

 

15. Send SMS :

Uri uri = Uri.parse("smsto:0800000123");  Intent intent = new Intent(Intent.ACTION_SENDTO, uri);  intent.putExtra("sms_body", "The SMS text");  this.startActivity(intent);

 

16. Send MMS : 

Java代码   
  1. Uri uri = Uri.parse("content://media/external/images/media/23");  
  2. Intent intent = new Intent(Intent.ACTION_SEND);  
  3. intent.putExtra("sms_body", "some text");  
  4. intent.putExtra(Intent.EXTRA_STREAM, uri);  
  5. intent.setType("image/png");   
  6. this.startActivity(intent);  

 

 

17. Send an Email :

Java代码   
  1. Uri uri = Uri.parse ("mailto: xxx@abc.com");   
  2. Intent intent = new Intent (Intent.ACTION_SENDTO, uri);    
  3. this.startActivity(intent);  

 

 

18. Send an Email with body :

Java代码   
  1. Intent intent = new Intent(Intent.ACTION_SEND);  
  2. intent.putExtra(Intent.EXTRA_EMAIL,"me@abc.com");  
  3. intent.putExtra(Intent.EXTRA_TEXT,"The email body text");  
  4. intent.setType ("text/plain");  
  5. this.startActivity(  
  6. Intent.createChooser(intent, "Choose Email Client"));    

 

 

19. Send an Email with body,to,cc :

Java代码   
  1. Intent intent = new Intent(Intent.ACTION_SEND);  
  2. String [] tos ={
    "me@abc.com"};  
  3. String [] ccs ={
    "you@abc.com"};  
  4. intent.putExtra(Intent.EXTRA_EMAIL, tos);  
  5. intent.putExtra(Intent.EXTRA_CC, ccs);  
  6. intent.putExtra(Intent.EXTRA_TEXT, "The email body text");  
  7. intent.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");  
  8. intent.setType("message/rfc822");  
  9. this.startActivity(  
  10. Intent.createChooser(intent, "Choose Email Client"));    

 

 

 

20. Send an Email with attachments :

Java代码   
  1. Intent intent = new Intent(Intent.ACTION_SEND);  
  2. intent.putExtra(Intent.EXTRA_SUBJECT,"The email subject text");  
  3. intent.putExtra(Intent.EXTRA_STREAM,"file :///sdcard/mysong.mp3");  
  4. sendIntent.setType("audio/mp3");  
  5. this.startActivity(  
  6. Intent.createChooser(intent,"Choose Email Client"));    

 

 

 

21. Uninstall the program :

Java代码   
  1. Uri uri = Uri.fromParts ("package", strPackageName, null);  
  2. Intent intent = new Intent (Intent.ACTION_DELETE, uri);   
  3. this.startActivity(  
  4. Intent.createChooser(intent,"Choose Email Client"));    

 

 

 

22. Install the apk :

Java代码   
  1. Uri installUri = Uri.fromParts("package", "xxx", null);  
  2. returnIt = new Intent(Intent.ACTION_PACKAGE_ADDED, installUri);   
  3. this.startActivity(returnIt);    

 

 

23. Search applications :

Java代码   
  1. Uri uri = Uri.parse("market://search?Q=pname:pkg_name");  
  2. Intent intent = new Intent(Intent.ACTION_VIEW, uri);  
  3. this.startActivity(intent);    
  4. //Where pkg_name is the full package path for an application  

 

24. Google Search Launch Web Browser :

Java代码   
  1. Intent intent = new Intent(Intent.ACTION_WEB_SEARCH);  
  2. String term = "Android";  
  3. intent.putExtra(SearchManager.QUERY, term);  
  4. activity.startActivity(intent);  

 

 

25. Send text using Intent (to messaging apps) :

Java代码   
  1. Intent intent = new Intent(Intent.ACTION_WEB_SEARCH);  
  2. String msgBody = "This is message";  
  3. Intent intent = new Intent(android.content.Intent.ACTION_SEND);  
  4. intent.setType("text/plain");  
  5. intent.putExtra(android.content.Intent.EXTRA_SUBJECT,   
  6. "message subject");  
  7. intent.putExtra(android.content.Intent.EXTRA_TEXT, msgBody);  
  8. activity.startActivity(Intent.createChooser(intent, getResources().  
  9. getString(R.string.share_by_using)));  

 

26. Create Shortcut on "Home Screen" :

  1. Intent intent = new Intent(Intent.ACTION_WEB_SEARCH);  
  2. Intent toPrint = new Intent(this, anCreateshutcut.class);    
  3. Intent addShortcut = new Intent  
  4. ("com.android.launcher.action.INSTALL_SHORTCUT");    
  5. addShortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, "Shutcutname");    
  6. addShortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, toPrint);    
  7. addShortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,   
  8. Intent.ShortcutIconResource.fromContext(this, R.drawable.icon));  
  9.    
  10. Manifest file:  
  11. <intent-filter>    
  12.   <action android:name="android.intent.action.CREATE_SHORTCUT">    
  13.   <category android:name="android.intent.category.LAUNCHER">    
  14. </category></action></intent-filter>  
  15. <uses-permission android:name="com.android.launcher.  
  16. permission.INSTALL_SHORTCUT">  
  17. </uses-permission>  

转载于:https://www.cnblogs.com/hebao0514/p/4711811.html

你可能感兴趣的文章
php安装扩展
查看>>
mvn dependency:tree
查看>>
伸展树——自顶向下
查看>>
查询sql server 2008所有表和行数
查看>>
SQL 中不同类型的表连接
查看>>
最小高度设置
查看>>
css3创建3D场景
查看>>
40种聚会小游戏,出去玩不会冷场了!
查看>>
Spring知识点总结
查看>>
敏捷开发方法综述
查看>>
webservice开发
查看>>
KCF追踪方法流程原理
查看>>
Quartz2D裁剪圆形头像
查看>>
vs 利用Pre-Build Event 实现简单版本号更新
查看>>
windows下mongodb安装与使用整理
查看>>
rac安装_grid安装校验报错之grid未建立信任关系
查看>>
mongodb 批量更新 数组的键操作的文件
查看>>
uboot初体验-----趣谈nand设备发起的浅显理解
查看>>
【计算机视觉】OpenCV中直方图处理函数简述
查看>>
具体解释Android中AsyncTask的使用
查看>>