安卓微信7.0.0,APP图片分享问题
- 当前 Bug 的表现(可附上截图) 使用fileprovider适配7.0以上将file:开头uri转换为content:开头的uri。多图分享调用系统分享接口,选择微信-发送给朋友,toast提示“分享失败,多文件分享仅支持照片格式”。 在微信开放社区找到https://developers.weixin.qq.com/community/develop/doc/000a024da986c0fc9be7a020651800 按照上面链接中解决方案引入 StrictMode后不用适配7.0以上系统发现可以正常运行,但是谷歌官方不建议在release正式版本中使用StrictMode,有更好的解决方案吗,上述方案会有隐患吗 - 预期表现 可以成功跳转到分享选择好友分享图片的界面 - 复现路径 - 提供一个最简复现 Demo 7.0以上安卓设备会出现上述问题 /** * 分享图片(触发场景多个图片) */ public void shareImages(Context context,ArrayList<String> imageUris_IN) { Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE); intent.setType("image/*");//设置mime格式为图片 //目前尝试使用uri有效,直接传文件路径会出现获取资源失败 //路径转换为uri ArrayList<Uri> imageUris = new ArrayList<Uri>(); //安卓7.0以需要使用fileprovider获取uri if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N){ //路径转换为uri for(int i=0; i<imageUris_IN.size(); i++) { imageUris.add(FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID+".fileprovider",new File(imageUri_IN.get(i))); } }else{ //路径转换为uri for(int i=0; i<imageUris_IN.size(); i++) { imageUris.add(Uri.parse("file://" + imageUris_IN.get(i))); } } intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, imageUris); intent.setType("image/*");//设置mime格式为图片 startActivityForResult(Intent.createChooser(intent, "选择应用"), 1001);; context.startActivity(Intent.createChooser(intent, null)); }