【问题标题】:Getting all system wallpapers获取所有系统壁纸
【发布时间】:2012-05-20 23:19:40
【问题描述】:

有没有办法以编程方式获取所有 android 系统壁纸?

我知道如何通过WallpaperManager 获取当前的,然后将其保存到磁盘。但我想知道是否有一种方法可以访问操作系统中包含的所有充当系统壁纸的图片。

【问题讨论】:

  • 你必须澄清你的问题:“所有作为系统壁纸的图片”。由于一次只能激活一个系统壁纸,这可能不是您的问题。如果您的问题是如何列出所有可能的壁纸,您必须指定使图像成为壁纸的原因,否则您可以简单地列出手机上的所有图像。
  • Android 默认自带壁纸应用。它用作壁纸的图片不是sd卡中的文件。相反,它们是 apk 中的资源。我想通过代码访问它们。谢谢。

标签: java android system wallpaper


【解决方案1】:

只需弄清楚它们的保存位置并以这种方式访问​​它们。

【讨论】:

  • 这可能会作为评论传递,但它肯定不是答案。对不起!
【解决方案2】:

所有壁纸都位于启动器应用程序中。由于启动器的名称及其资源可能因设备而异,因此无法创建可靠的方法来执行此操作。

在库存 Android 上,壁纸位于 Launcher2.apk:res/drawable-somedpi。在我的设备上,它们位于 drawable-hdpi 文件夹中,但在其他设备上可能会有所不同。

首先获取启动器(com.android.Launcher2.apk)的资源,如this答案中所述。

然后你可以列出资源,使用类似于this问题中的方法。

我自己还没有尝试过所有这些,所以它可能无法按预期工作。

【讨论】:

  • 您可以独立于启动器安装和删除壁纸。所以检查启动器包没有帮助!
  • 如果你用apktool反编译Launcer2.apk,你会看到它包含了壁纸。我不太清楚你所说的“安装壁纸”是什么意思。
  • 感谢您为我指明方向。我能够为com.android.launcher(API 级别 7)获得一个Resources,但在res 目录中列出文件不会返回任何内容。我会继续努力的。
猜你喜欢
  • 1970-01-01
  • 2012-04-13
  • 1970-01-01
  • 1970-01-01
  • 2015-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多