Android 获取当前壁纸
我对Android编程还很陌生,所以请容忍我 我想知道是否有一种方法可以在android设备上检索当前的壁纸,并将其保存到应用程序代码中的变量中Android 获取当前壁纸,android,methods,wallpaper,Android,Methods,Wallpaper,我对Android编程还很陌生,所以请容忍我 我想知道是否有一种方法可以在android设备上检索当前的壁纸,并将其保存到应用程序代码中的变量中 谢谢这是一个很好的方法: WallpaperManager wallpaperManager = WallpaperManager.getInstance(this); Drawable wallpaperDrawable = wallpaperManager.getDrawable(); 这将进一步保存文件。当然,您需要异常处理,还需要外部写入权限
谢谢这是一个很好的方法:
WallpaperManager wallpaperManager = WallpaperManager.getInstance(this);
Drawable wallpaperDrawable = wallpaperManager.getDrawable();
这将进一步保存文件。当然,您需要异常处理,还需要外部写入权限
import java.io.FileOutputStream;
import android.graphics.Bitmap;
import android.app.WallpaperManager;
WallpaperManager wmInstance = WallpaperManager.getInstance(context);
wmInstance
.getDrawable()
.getBitmap()
.compress(Bitmap.CompressFormat.PNG, 100,
new FileOutputStream("/storage/emulated/0/output.png"))
如果设置了实时墙纸怎么办?@S.D.在这种情况下,我不知道会返回什么,但您可以调用“GetWallperInfo”来检查它是否是实时墙纸:@S.D.在这种情况下,据我所知,将返回最后一组墙纸。您知道这是否需要任何权限吗?从android 8.1版开始,WallperManager.getDrawable()将需要读取\u外部\u存储权限,不幸的是,官方文档中没有提到这一点。这里的答案都没有帮助,但以下答案对我有效:。它使用wallperManager.getwallperfile方法。
import java.io.FileOutputStream;
import android.graphics.Bitmap;
import android.app.WallpaperManager;
WallpaperManager wmInstance = WallpaperManager.getInstance(context);
wmInstance
.getDrawable()
.getBitmap()
.compress(Bitmap.CompressFormat.PNG, 100,
new FileOutputStream("/storage/emulated/0/output.png"))