点击qq或者微信对话框里面的文件跳转到自己的app时的文件路径问题

最近研发一个手机app,当点击qq或者微信里面的文件时,需要把自己的app加入到可用的程序列表。并在打开软件里面对点击的文件做响应的操作。一阵摸索之后可以把自己软件加入到可用的程序列表,到时在程序中对文件做操作时,总是出现各种各样的路径问题。现在把遇到的问题列举如下,并附上解决办法。

1.在qq或者微信里面单击文件时,把自己的软件加入可用列表中

在AndroidManifest.xml文件中加入过滤器,添加到需要直接打开的Activity里面

 <activityandroid:name=".MainActivity"android:screenOrientation="portrait"android:windowSoftInputMode="adjustPan"><!--这两行主要是控制TextView输入信息时让Activity适应窗口--><!--启动Activity的过滤器--><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter><!--从第三方软件打开本软件的过滤器--><intent-filter><action android:name="android.intent.action.VIEW" /><category android:name="android.intent.category.DEFAULT" /><data android:mimeType="application/vnd.google-earth.kml+xml" /><!--本例子是打开一个kml文件--></intent-filter></activity>

过滤器里面的action、category和data根据自己开发的需求调整。

2.从qq跳转的路径问题
在需要打开Activity的onCreate方法里面加入以下代码:

protected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.activity_main);/*************从第三方应用里面打开***********/Intent intent1 = getIntent();String action = intent1.getAction();if (intent1.ACTION_VIEW.equals(action)) {Uri uri = intent1.getData();String path1 = Uri.decode(uri.getEncodedPath());//在微信或者qq里面的路径//从qq里面跳转Log.e("=====9999999999999999==", "从qq里面跳转");Log.e("=====9999999999999999==", path1);int qqweizhi = path1.indexOf("/storage/emulated/0");String path = path1.substring(qqweizhi);//分割字符串filepath = path;Log.e("=====9999999999999999==", filepath);}        }

打印出的Log信息如下:

07-01 18:17:09.807 6213-6213/qcfp.com E/=====9999999999999999==: 从qq里面跳转
07-01 18:17:09.807 6213-6213/qcfp.com E/=====9999999999999999==: /external_files/storage/emulated/0/Android/data/com.tencent.mobileqq/Tencent/QQfile_recv/08区新增构架面---20191112.kml
07-01 18:17:09.807 6213-6213/qcfp.com E/=====9999999999999999==: /storage/emulated/0/Android/data/com.tencent.mobileqq/Tencent/QQfile_recv/08区新增构架面---20191112.kml

从控制台可以看到原本是个扩展路径,所以需要把路径进行加工,然后得到正确的文件路径

3.从微信跳转的路径问题
一番摸索之后发现从微信里面打开路径和qq里面的又有所不同,所以综合考虑得到最终的解决办法:

 @Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.activity_main);/*************从第三方应用里面打开***********/Intent intent1 = getIntent();String action = intent1.getAction();if (intent1.ACTION_VIEW.equals(action)) {Uri uri = intent1.getData();//这里不要用intent1.getStringData()方法,因为如果路径里面存在中文会出现乱码,所以要用decode()方法处理一下String path1 = Uri.decode(uri.getEncodedPath());//在微信或者qq里面的路径,int weizhi= path1.indexOf("/external/tencent");if(weizhi==-1){//从qq里面跳转Log.e("=====9999999999999999==", "从qq里面跳转");Log.e("=====9999999999999999==", path1);int qqweizhi = path1.indexOf("/storage/emulated/0");String path = path1.substring(qqweizhi);//分割字符串filepath = path;Log.e("=====9999999999999999==", filepath);}else{Log.e("=====9999999999999999==", "从微信里面跳转");Log.e("=====9999999999999999==", path1);filepath = path1.replace("external/tencent","storage/emulated/0/Tencent");//把微信里面的小写改为大写Log.e("=====9999999999999999==", filepath);}      }      }

最终解决了从两个软件跳转的路径问题

点击qq或者微信对话框里面的文件跳转到自己的app时的文件路径问题相关推荐

  1. Window10 系统点击点击第三方应用(QQ、微信)中的链接无法跳转设置的默认浏览器(Chrome)

    问题描述 Window10系统将默认浏览器设置成Chrome,点击外部http或者https链接无法跳转到默认浏览器显示. 前车之鉴 可以参考此文章[日常踩坑]修复 chrome 打不开微信或者部分第 ...

  2. android 横向头像栏,GitHub - liushiqi0112/android-headimage-cliper: 头像上传图片裁剪,实现仿QQ、微信两种效果...

    Android头像上传之图片裁剪,实现仿QQ.微信两种效果 功能描述: 头像上传在APP中是很常见的功能,但是关于头像上传前的图片裁剪方式,如果使用系统提供的裁剪方式达不到预期效果,所以在这里提供一个 ...

  3. 点击微信网页的a标签直接跳转到淘宝APP打开怎么实现的?

    见上图,是在微信里面打开的一个网页,当点击"直接下单"的时候,就直接跳转到淘宝APP了,无需通过浏览器唤起APP. 代码: <meta http-equiv="Co ...

  4. 移动端js实现点击复制到剪贴板,【真正】兼容所有浏览器uc、qq、微信、手机自带等浏览器...

    移动端js实现点击复制到剪贴板,带提示,[真正]兼容所有浏览器,包括安卓和ios及uc.qq.微信.手机自带等浏览器. github,欢迎star: https://github.com/majian ...

  5. 电脑连上网,可以登录qq、微信,但是打不开网页,怎么办?

    文章目录 (一) 问题解析 (二) IP (三) 子网掩码 (四) 默认网关 (五) DNS域名服务 (六) 举个例子 (七) 如何设置? 家里刚装的无线网,可以登录微信.qq,但就是死活连不上网.于 ...

  6. win11任务栏图标闪烁|任务栏QQ图标闪动|新消息任务栏自动弹出|设置自动隐藏任务栏之后,QQ或微信等工具新消息自动弹出任务栏并颜色提示问题解决方案

    背景介绍: 今天正常使用电脑时也出现消息弹出问题(已经设置隐藏任务栏),很头疼那么时什么情况,该如何组去解决呢?(微信任务栏闪动未读消息) MyDockFinder    Windows 桌面美化工具 ...

  7. 统信桌面操作系统V20个人版(1010)发布,支持QQ、微信等流行应用

    今日,统信桌面操作系统V20个人版(1010)正式发布. 与个人体验版相比,统信桌面操作系统V20个人版(1010)提供全新设计的启动器菜单.双内核机制.系统体验工具.系统备份还原.指纹识别.系统安全 ...

  8. duilib combo增加搜索栏_微信对话框上线搜一搜,搜索一步到位!

    关注[玩机小公举] 星标公众号 最新技巧,第一时间送达 前两天微信内测了新功能,据透露,今天将会在对话框全量上线搜一搜功能.注意这不是[发现页]-[搜一搜]而是在聊天对话框,直接增加了快速搜索的入口. ...

  9. 摸鱼神器来了!让你用QQ、微信的时候都像是在工作

    平时大家使用IDEA编码的时候,要聊天切换qq或者微信是不是觉得很麻烦,有时候还会被老板看到说你不专心? 今天TJ君要给大家介绍一个好东西,能让你在IDEA里面直接打开QQ或者微信,按照作者的说法就是 ...

最新文章

  1. VTK:图表之NOVCAGraph
  2. 计算机网络:子网划分、子网掩码、CIDR 、路由聚合相关计算详解
  3. Java String类型转换成Date日期类型
  4. 猎豹MFC--CMenu菜单 设置主菜单 给主对话框设置菜单 设置快捷菜单
  5. informatica数据脱敏_助您首个大数据项目破茧成蝶的实践指南
  6. Python常用运算符含义与用法演示
  7. Xcode 项目忽略警告
  8. VS2010 MVC的 安装
  9. sql2005找不到服务器名,SQLServer2005 没有服务器名称的两种解决方法
  10. 手机蓝牙连接51单片机自动开门
  11. 判断是pc端还是移动端浏览器
  12. GOP图像组和组中3类不同的图像帧IBP
  13. 方差分析原理及实例应用
  14. 只能吃土豆的牛牛(二进制枚举)
  15. Hbuilder开发APP(一)——底部导航条简单实现
  16. Material studio 中如何构建方形晶胞
  17. Henri Bergson and the Perception of Time
  18. 我对说话人识别/声纹识别的研究综述
  19. 上海市一级计算机ps,上海市计算机一级考试ps部分练习题.docx
  20. 教你创建Oracle复合索引(精)

热门文章

  1. 【计算机操作系统】安全和保护
  2. mumu模拟器cpu占用高如何处理?
  3. 阿里云滑块验证漏洞太大。
  4. 100行的python作品详解_漫画喵的100行Python代码逆袭
  5. 如何用 git 去下载相应的资源
  6. 适合初学者的顶级Python书单
  7. 基因探针c语言编程,如何零代码实现芯片探针表达矩阵转化为基因表达矩阵?...
  8. 消息对话框:alert、confirm、prompt
  9. SpringMVC源码分析系列
  10. javascript 计算两个坐标的距离 米_关于小半径路线(匝道)曲线路段土石方计算精度问题的讨论...