开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 7112|回复: 1
收起左侧

[转载教程] EasyClick 免Root脚本 发送Intent打开文件Activity源码

[复制链接]
发表于 2020-6-16 11:49:38 | 显示全部楼层 |阅读模式   安徽省合肥市
新一代简单易学,开箱即用,可编程式自动化测试软件 免ROOT不限手机环境,
支持Android 5.0到10,全节点分析不限分辨率,OpenCV图色识别 JS编程简单易学,

IDEA智能开发工具支持,实时投屏预览运行 支持OpenApi,

不限调用者环境,跨语言调用。

想学习的可以百度搜索 easyclick


以下代码是发送Intent让系统打开文件的Activity源码:




  1. importClass(java.io.File)
  2. importClass (android.content.Intent)
  3. importClass (android.net.Uri)
  4. importClass (android.os.Build)
  5. importClass (android.os.StrictMode)


  6. function openAndroidFile( filepath){
  7.     var intent = new Intent();
  8.     try {
  9.         if (Build.VERSION.SDK_INT >= 25) {
  10.             //安卓7.0以上
  11.             var builder = new StrictMode.VmPolicy.Builder();
  12.             StrictMode.setVmPolicy(builder.build());
  13.             var file = new File(filepath);
  14. //        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//设置标记
  15.             intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
  16.             intent.setAction(Intent.ACTION_VIEW);//动作,查看

  17.             intent.setDataAndType(Uri.fromFile(file), getMIMEType(filepath))
  18.         }else {
  19.             intent = new Intent("android.intent.action.VIEW");
  20.             intent.addCategory("android.intent.category.DEFAULT");
  21.             intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

  22.             //  uri1 = Uri.parse(filepath  );
  23.             // intent.setDataAndType(uri1, "text/plain");
  24.             //
  25.              uri2 = Uri.fromFile(new File(filepath ));
  26.             intent.setDataAndType(uri2, "text/plain");
  27.         }
  28.     }catch( az){
  29.         logd("openAndroidFile:"+az)
  30.     }


  31.     return intent


  32. }

  33. function getMIMEType(file) {
  34.     var MIME_MapTable=
  35.             //{后缀名,    MIME类型}

  36.             {".3gp":    "video/3gpp",
  37.                 ".apk":    "application/vnd.android.package-archive",
  38.                 ".asf":    "video/x-ms-asf",
  39.                 ".avi":    "video/x-msvideo",
  40.                 ".bin":    "application/octet-stream",
  41.                 ".bmp":      "image/bmp",
  42.                 ".c":        "text/plain",
  43.                 ".class":    "application/octet-stream",
  44.                 ".conf":    "text/plain",
  45.                 ".cpp":    "text/plain",
  46.                 ".doc":    "application/msword",
  47.                 ".docx":    "application/msword",
  48.                 ".exe":    "application/octet-stream",
  49.                 ".gif":    "image/gif",
  50.                 ".gtar":    "application/x-gtar",
  51.                 ".gz":        "application/x-gzip",
  52.                 ".h":        "text/plain",
  53.                 ".htm":    "text/html",
  54.                 ".html":    "text/html",
  55.                 ".jar":    "application/java-archive",
  56.                 ".java":    "text/plain",
  57.                 ".jpeg":    "image/jpeg",
  58.                 ".JPEG":    "image/jpeg",
  59.                 ".jpg":    "image/jpeg",
  60.                 ".js":        "application/x-javascript",
  61.                 ".log":    "text/plain",
  62.                 ".m3u":    "audio/x-mpegurl",
  63.                 ".m4a":    "audio/mp4a-latm",
  64.                 ".m4b":    "audio/mp4a-latm",
  65.                 ".m4p":    "audio/mp4a-latm",
  66.                 ".m4u":    "video/vnd.mpegurl",
  67.                 ".m4v":    "video/x-m4v",
  68.                 ".mov":    "video/quicktime",
  69.                 ".mp2":    "audio/x-mpeg",
  70.                 ".mp3":    "audio/x-mpeg",
  71.                 ".mp4":    "video/mp4",
  72.                 ".mpc":    "application/vnd.mpohun.certificate",
  73.                 ".mpe":    "video/mpeg",
  74.                 ".mpeg":    "video/mpeg",
  75.                 ".mpg":    "video/mpeg",
  76.                 ".mpg4":    "video/mp4",
  77.                 ".mpga":    "audio/mpeg",
  78.                 ".msg":    "application/vnd.ms-outlook",
  79.                 ".ogg":    "audio/ogg",
  80.                 ".pdf":    "application/pdf",
  81.                 ".png":    "image/png",
  82.                 ".pps":    "application/vnd.ms-powerpoint",
  83.                 ".ppt":    "application/vnd.ms-powerpoint",
  84.                 ".pptx":    "application/vnd.ms-powerpoint",
  85.                 ".prop":    "text/plain",
  86.                 ".rar":    "application/x-rar-compressed",
  87.                 ".rc":        "text/plain",
  88.                 ".rmvb":    "audio/x-pn-realaudio",
  89.                 ".rtf":    "application/rtf",
  90.                 ".sh":        "text/plain",
  91.                 ".tar":    "application/x-tar",
  92.                 ".tgz":    "application/x-compressed",
  93.                 ".txt":    "text/plain",
  94.                 ".xls":    "text/plain",
  95.                 ".csv":     "text/plain",
  96.                 ".wav":    "audio/x-wav",
  97.                 ".wma":    "audio/x-ms-wma",
  98.                 ".wmv":    "audio/x-ms-wmv",
  99.                 ".wps":    "application/vnd.ms-works",
  100.                 //".xml",    "text/xml",
  101.                 ".xml":    "text/plain",
  102.                 ".z":        "application/x-compress",
  103.                 ".zip":    "application/zip",
  104.                 "":        "*/*"}

  105.     var type="*/*";
  106.     var fName = file
  107.     //获取后缀名前的分隔符"."在fName中的位置。
  108.     var dotIndex = fName.lastIndexOf(".");
  109.     if(dotIndex < 0)
  110.         return type;
  111.     /* 获取文件的后缀名 */
  112.    var fileType = fName.substr(dotIndex).toLowerCase();
  113.     if(fileType == null || "".equals(fileType))
  114.         return type;
  115.     //在MIME和文件类型的匹配表中找到对应的MIME类型。
  116.     for(var key in MIME_MapTable){
  117.         if(fileType.equals(key )){
  118.             type = MIME_MapTable[key];
  119.         }
  120.     }
  121.     return type;
  122. }
复制代码



发表于 2020-11-30 13:04:42 | 显示全部楼层   广西壮族自治区玉林市
这个怎么调用的,文件是啥
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表