作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我尝试使用 getCropAndSetWallpaperIntent 方法,但出现错误。
这是我的代码:
Uri uri = Uri.parse("content://" + getFilesDir() + "/"+ image.path);
ContentResolver contentResolver = getContentResolver();
contentResolver.getType(uri); // Type is null
Intent intent = wallpaperManager.getCropAndSetWallpaperIntent(uri);
intent.setType("image/*");
startActivityForResult(intent, 42);
这是我在日志中得到的内容:
java.lang.IllegalArgumentException: Cannot use passed URI to set wallpaper; check that the type returned by ContentProvider matches image/*
你能帮帮我吗?
最佳答案
你必须在不使用“content://”协议(protocol)的情况下查询 MediaStore,例如像这样(代码可以改进):
String[] paths = {"/example.png"};
final String[] FIELDS = { MediaStore.MediaColumns._ID };
// Images
Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
Cursor ca = context.getContentResolver().query(uri, FIELDS, MediaStore.MediaColumns.DATA + "=?", paths, null);
for (ca.moveToFirst(); !ca.isAfterLast(); ca.moveToNext()) {
int id = ca.getInt(ca.getColumnIndex(MediaStore.MediaColumns._ID));
uri = ContentUris.withAppendedId(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, id);
found = true;
}
ca.close();
if (found) {
return uri;
}
关于android - 如何使用getCropAndSetWallpaperIntent?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21094023/
在 android 中使用 getCropAndSetWallpaperIntent() 时出现此错误 D/Exception: java.lang.IllegalArgumentException:
因此,有两个问题与此相同( How to use getCropAndSetWallpaperIntent method in WallpaperManager?和 How to use getCro
因此,有两个问题与此相同( How to use getCropAndSetWallpaperIntent method in WallpaperManager?和 How to use getCro
我是一名优秀的程序员,十分优秀!