android7.0版本,通过第三方打开特定文件

qq_35916552 2017-09-20 10:03:58
说明:1、文件格式为: .mm (思维导图文件)
2、第三方app:思维导图(可在应用宝上下载,不过在我的deomo里可以下载)
操作:3、通过我的demo 下载思维导图app (注意app的读写权限是需要手动打开的,或者点击导图分享可以弹出读写权限)
4、通过我的demo 下载思维导图文件
5、通过我的demo跳转到思维导图app,并在思维导图app上打开思维导图文件

问题:无法打开思维导图文件(不过可以跳转到思维导图app上)
目前是针对7.0版本会出现该问题,6.0版本没有。

我的思路:
通过网上FIleProvider进行文件共享,从而让思维导图app可以打开该文件
烦请大神帮忙解答一下。小弟愿献上80分,分不多 还请大神帮个忙,感激不尽!

demo地址:https://pan.baidu.com/s/1jHUEzAm

先谢谢了
...全文
840 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jklwan 2017-09-21
  • 打赏
  • 举报
回复
不是你的问题,这个app没适配7.0的文件方式,它是直接打开传入的文件路径的,你直接在手机文件浏览器中直接打开也是打不开的,可以考虑换个app。

qq_35916552 2017-09-21
  • 打赏
  • 举报
回复
尝试了一下,确实可以了,在此献上小弟的一点点心意,希望笑纳!
jklwan 2017-09-21
  • 打赏
  • 举报
回复
引用 2 楼 qq_35916552 的回复:
谢谢指导 不过还有一个问题:1、之前我通过找到下载的文件,点击可以打开该文件 2、通过微信下载也可以打开该文件。 思考:1、系统可以通过上面思维导图app打开.mm文件,是不是说7.0中,系统其实传的是真实的文件路径过去的?(微信是否也是如此?) 2、那么 我们怎么能像微信那样打开该文件呢?
比较流氓的方法,绕过7.0的文件权限检查

               Intent intent = new Intent(Intent.ACTION_VIEW);
                // 判断版本大于等于7.0
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
                    StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
                    StrictMode.setVmPolicy(builder.build());
                }
                data = Uri.fromFile(pathFile);
                intent.setDataAndType(data, "application/x-freemind");
                Toast.makeText(activity, "uri:" + data.toString(), Toast.LENGTH_SHORT).show();
                activity.startActivity(intent);
这样就能打开了
qq_35916552 2017-09-21
  • 打赏
  • 举报
回复
谢谢指导 不过还有一个问题:1、之前我通过找到下载的文件,点击可以打开该文件 2、通过微信下载也可以打开该文件。 思考:1、系统可以通过上面思维导图app打开.mm文件,是不是说7.0中,系统其实传的是真实的文件路径过去的?(微信是否也是如此?) 2、那么 我们怎么能像微信那样打开该文件呢?

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧