我有错误
java.lang.IllegalArgumentException: Cannot use passed URI to set wallpaper; check that the type returned by ContentProvider matches image/*
at android.app.WallpaperManager.getCropAndSetWallpaperIntent(WallpaperManager.java:792)
at lv.revo.inspicfootballhd.MainActivity.onTouch(MainActivity.java:244)
我的代码
Uri uri = ResourceToUri(getApplicationContext(), imageArray[j]);
File wallpaper_file = new File(uri.getPath());
Uri contentURI = getImageContentUri(getApplicationContext(), wallpaper_file.getAbsolutePath());
ContentResolver cr = this.getContentResolver();
Log.d("CONTENT TYPE: ", "IS: " + cr.getType(contentURI));
Intent intent = new Intent(wallpaperManager.getCropAndSetWallpaperIntent(contentURI));
startActivity(intent);
imageArray []基本上是一个数组,包含drawables - R.drawable.v1,图像格式为jpg。 cr.getType返回null。 那么,如何根据方法getCropAndSetWallpaperIntent将contentURI的类型更改为image / *?
更新1: 如果我在使用该方法之前将图片保存在我的设备中然后获取该图片的Uri,我设法获得方法getCropAndSetWallpaperIntent工作。如果我使用默认的设置壁纸活动设置图片,图片的质量不如图片本身好,但这是一个不同的问题。