我无法使用 WallpaperManager 更改 Android 壁纸

I cannot change Android wallpaper using WallpaperManager

我正在尝试使用代码更改 Android 墙纸。我正在使用 WallpaperManager class,但没有成功。我在 /drawable 目录中使用了一个 .png 图像。我收到一条错误消息 "Expected resource of type raw"。当我 运行 应用程序(当该方法 运行s 时),它崩溃了。我一定是一个非常愚蠢的错误的受害者。用户点击按钮后,方法 changeWallpaper() 为 运行。这是我的代码:

 public void changeWallpaper(View view) {

    try{
        WallpaperManager wallpaperManager = WallpaperManager.getInstance(getApplicationContext());
        wallpaperManager.setResource(R.drawable.material_wallpaper);
        String successMessage = "Wallpaper Changes";
        Toast.makeText(this, successMessage, Toast.LENGTH_SHORT).show();
    } catch (IOException e) {
        e.printStackTrace();
        String failedMessage = "Operation failed";
        Toast.makeText(this, failedMessage, Toast.LENGTH_SHORT).show();
    }

}

编辑:我的 /res/ 目录中没有 "raw" 文件夹。

如果您想继续使用 Drawable,可以将资源转换为位图,然后使用 setBitmap(Bitmap _bitmap) 将其设置为墙纸(参见 WallpaperManager)。

WallpaperManager wallpaperManager = WallpaperManager.getInstance(getActivity().getApplicationContext());
Bitmap bitmap = BitmapFactory.decodeResource(getActivity().getResources(), R.drawable.material_wallpaper);
wallpaperManager.setBitmap(bitmap);