我试图将位图图像设置为壁纸。我可以在ImageView中设置位图。但是,当我尝试打开设置为壁纸应用程序崩溃的意图。我已经发布了下面的LogCat。Android:将位图设置为壁纸
Intent intent = new Intent(Intent.ACTION_ATTACH_DATA);
intent.setType("image/*");
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
Bitmap bitmap = wallpaper;
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
String path = Images.Media.insertImage(getContentResolver(), bitmap , "Title", "Description");
if(path != null)
intent.setData(Uri.parse(path));
startActivity(Intent.createChooser(intent, "Choose Application"));
但我得到这个logcat错误。
12-21 12:13:01.802: E/MediaStore(7761): Failed to insert image
12-21 12:13:01.802: E/MediaStore(7761): java.io.FileNotFoundException: No such file or directory
12-21 12:13:01.802: E/MediaStore(7761): at android.database.DatabaseUtils.readExceptionWithFileNotFoundExceptionFromParcel(DatabaseUtils.java:146)
12-21 12:13:01.802: E/MediaStore(7761): at android.content.ContentProviderProxy.openAssetFile(ContentProviderNative.java:577)
12-21 12:13:01.802: E/MediaStore(7761): at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:673)
12-21 12:13:01.802: E/MediaStore(7761): at android.content.ContentResolver.openOutputStream(ContentResolver.java:537)
12-21 12:13:01.802: E/MediaStore(7761): at android.content.ContentResolver.openOutputStream(ContentResolver.java:513)
12-21 12:13:01.802: E/MediaStore(7761): at android.provider.MediaStore$Images$Media.insertImage(MediaStore.java:891)
12-21 12:13:01.802: E/MediaStore(7761): at com.shyam.flickrwallpaperapp.Wallpaper.onClick(Wallpaper.java:164)
12-21 12:13:01.802: E/MediaStore(7761): at java.lang.reflect.Method.invokeNative(Native Method)
12-21 12:13:01.802: E/MediaStore(7761): at java.lang.reflect.Method.invoke(Method.java:525)
12-21 12:13:01.802: E/MediaStore(7761): at android.view.View$1.onClick(View.java:3628)
12-21 12:13:01.802: E/MediaStore(7761): at android.view.View.performClick(View.java:4240)
12-21 12:13:01.802: E/MediaStore(7761): at android.view.View$PerformClick.run(View.java:17721)
12-21 12:13:01.802: E/MediaStore(7761): at android.os.Handler.handleCallback(Handler.java:730)
12-21 12:13:01.802: E/MediaStore(7761): at android.os.Handler.dispatchMessage(Handler.java:92)
12-21 12:13:01.802: E/MediaStore(7761): at android.os.Looper.loop(Looper.java:137)
12-21 12:13:01.802: E/MediaStore(7761): at android.app.ActivityThread.main(ActivityThread.java:5103)
12-21 12:13:01.802: E/MediaStore(7761): at java.lang.reflect.Method.invokeNative(Native Method)
12-21 12:13:01.802: E/MediaStore(7761): at java.lang.reflect.Method.invoke(Method.java:525)
12-21 12:13:01.802: E/MediaStore(7761): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
12-21 12:13:01.802: E/MediaStore(7761): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
12-21 12:13:01.802: E/MediaStore(7761): at dalvik.system.NativeStart.main(Native Method)
您还可以设置壁纸的编码,而不是意图是什么? –