昨天晚上搞了一下,不是闪退就是提示文件资源获取失败
心想着,代码没多大的问题啊,直到发现了一片文章:https://www.jianshu.com/p/796c28011dc2
我摘一下主要的信息
有些应用对于FileProvider生成的Uri无法识别,需要转化成MediaStore 的 content://。
微信就是其中之一
这是原文中的函数:不用管函数命名,这只是将路径文件转换为(MediaStore 的 content://)Uri的函数
public static Uri getImageContentUri(Context context, File imageFile) {
String filePath = imageFile.getAbsolutePath();
Cursor cursor = context.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
new String[] { MediaStore.Images.Media._ID }, MediaStore.Images.Media.DATA + "=? ",
new String[] { filePath }, null);
Uri uri = null;
if (cursor != null) {
if (cursor.moveToFirst()) {
int id = cursor.getInt(cursor.getColumnIndex(MediaStore.MediaColumns._ID));
Uri baseUri =

本文详细解析了在Android应用中遇到的文件资源获取失败问题,并提供了一个有效的解决方案,通过将FileProvider生成的Uri转换为MediaStore的content://格式,解决了包括微信在内的部分应用无法识别的问题。
最低0.47元/天 解锁文章
966





