在Android 7.0之前打开文件只需要。
private static void openFile(Context context, File f) {        Intent myIntent = new Intent(android.content.Intent.ACTION_VIEW);        String extension = android.webkit.MimeTypeMap.getFileExtensionFromUrl(Uri.fromFile(f).toString());        String mimetype = android.webkit.MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);        myIntent.setDataAndType(Uri.fromFile(f), mimetype);        context.startActivity(myIntent);    }
但是Android 7.0之后就不行了,对于7.0之后首先要在AndroidManifest.xml中声明Provider。
     
 然后再项目中新建xml文件夹,在其中创建对应的文件filepaths.xml。
<?xml version="1.0" encoding="utf-8"?>        
最后再实现功能。
private static void openFile(Context context, File f) {        Intent intent = new Intent(Intent.ACTION_VIEW);        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);        String extension = android.webkit.MimeTypeMap.getFileExtensionFromUrl(Uri.fromFile(f).toString());        String mimetype = android.webkit.MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);        //7.0以上需要        if (Build.VERSION.SDK_INT >= 24) {            intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);            Uri uri = FileProvider.getUriForFile(context, "com.example.administrator.main.fileprovider", f);            intent.setDataAndType(uri, mimetype);        } else {            intent.setDataAndType(Uri.fromFile(f), mimetype);        }        context.startActivity(intent);    }





更多相关文章

  1. NPM 和webpack 的基础使用
  2. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  3. Android(安卓)记录gitignore文件内容
  4. Android(安卓)studio 多线程网络文件下载
  5. AndroidManifest.xml配置文件选项详解
  6. 将 android sql文件放生成在sd卡
  7. Android(安卓)Io 整理
  8. Android写文件到SDCard的简单代码
  9. Android和PC端通过局域网文件同步

随机推荐

  1. android 抽屉的一些小问题
  2. LinearLayout中gravity和layout_gravity
  3. Android应用程序基础
  4. Android(安卓)二级列表
  5. Android CTS 测试总结【转】
  6. Android之 UI主线程
  7. Android 在界面中显示以及输入文本信息 T
  8. android ListView控件 去上下滑动阴影 选
  9. android udp通信
  10. 【android】关于退出时关闭“后台”显示