做了一个类似云盘的应用,预览文件时会先缓存到外部存储并通过 FileProvider 把content://
类型的 uri 通过 intent 发送出去
String mimeType = MimeTypeMap.getSingleton(.getMimeTypeFromExtension(mResDto.getResSuffix()); //打开对应的浏览文件 Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setDataAndType(uri, mimeType); if (!IntentUtil.isIntentAvailable(mActivity, intent)) { snack(binding.getRoot(), "系统中没有能打开此文件应用", Snackbar.LENGTH_LONG); } else { //给予能打开文件的应用临时权限 List<ResolveInfo> resolveInfo = IntentUtil.getIntentResolveInfo(mActivity, intent); for (ResolveInfo info : resolveInfo) { grantUriPermission(info.activityInfo.packageName, uri, Intent.FLAG_GRANT_READ_URI_PERMISSION); } intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); startActivity(intent); }
什么 doc , ppt 都没得问题,但图片会被 qq 和微信响应,点进去又说文件访问不到,这到底是我的问题还是 qq 和微信的问题?有没有办法把这两个踢出去?(_`)
1 29995270 2017-04-19 10:33:23 +08:00 ![]() List<ResolveInfo> 里把包名带 tencent 的去掉行不? |
![]() | 3 nn574204775 2017-04-19 17:23:28 +08:00 via Android QQ 的问题 只能自己做个和系统的差不多的 UI ( |
![]() | 4 nn574204775 2017-04-19 17:26:08 +08:00 via Android ![]() ← 几天之前刚做了(( |
![]() | 5 rockyou12 OP @nn574204775 我又研究了下其他的文件浏览 app ,还想也都没管这个,还是正大光明的无视这个问题好了 (ˇˇ) |