- 当前 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>();
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));
}