2012-03-11 1 views
2

現在の壁紙のファイル名またはファイルサイズを知りたいですか? 私はこのような現在の壁紙の描画可能を取得する方法を知っている:Androidで現在の壁紙に関する情報を取得するにはどうすればよいですか?

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

しかし、私はより多くの指定された情報を得るための方法を見つけることができません。

ただ私のサーバーを設定し、サーバーを1時間に1枚のモバイルデバイスに送信し、数分後にモバイルの現在の壁紙が私のサーバーが以前に送信したものであることを確認したいと思います。

答えて

0

残念なことに、静止画の壁紙では、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()); 
    } 
} 
関連する問題