【问题标题】:How can i get the information about current wallpaper in Android?如何在 Android 中获取有关当前壁纸的信息?
【发布时间】:2012-03-11 05:33:34
【问题描述】:

我想知道当前壁纸的文件名或文件大小。 我知道如何像这样获取当前壁纸的可绘制对象:

ImageView view = new ImageView(this);
view.setImageDrawable(WallpaperManager.getInstance(this).getDrawable());

但是,我找不到获取更多指定信息的方法。

我只想设置我的服务器,让我的服务器每小时向某个移动设备发送一张壁纸,几分钟后,我想检查移动设备的当前壁纸是否是我的服务器之前发送给它的壁纸。

【问题讨论】:

    标签: android wallpaper


    【解决方案1】:

    不幸的是,对于静态壁纸,除了Drawable 公开的信息外,没有其他信息。您需要将服务器上次发送到设备的Bitmap 存储在后台服务中,然后退出正在运行的壁纸并手动比较位图。对于 API 级别 12 或更高级别,您可以使用 Bitmap.sameAs 方法,但在此之前您需要手动比较像素。

    public static boolean equals(Bitmap bitmap1, Bitmap bitmap2)
    {
        if (bitmap1 == null || bitmap2 == null)
        {
            return false;
        }
        if(Build.VERSION.SDK_INT > 11)
        {
            return bitmap1.sameAs(bitmap2);
        }
        else
        {
            ByteBuffer buffer1 = ByteBuffer.allocate(bitmap1.getHeight() * bitmap1.getRowBytes());
            bitmap1.copyPixelsToBuffer(buffer1);
    
            ByteBuffer buffer2 = ByteBuffer.allocate(bitmap2.getHeight() * bitmap2.getRowBytes());
            bitmap2.copyPixelsToBuffer(buffer2);
    
            return Arrays.equals(buffer1.array(), buffer2.array());
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2022-12-14
      • 1970-01-01
      • 2012-04-13
      • 1970-01-01
      • 1970-01-01
      • 2011-06-18
      • 1970-01-01
      • 2016-05-03
      • 1970-01-01
      相关资源
      最近更新 更多