2012-03-11 1 views
2

현재 배경 화면의 파일 이름이나 파일 크기를 알고 싶습니다. 이 같은 현재의 벽지의 그리기를 얻는 방법을 알고Android에서 현재 배경 화면에 대한 정보를 얻으려면 어떻게해야합니까?

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

그러나, 나는 더 지정된 정보를 얻을 수있는 방법을 찾을 수 없습니다.

그냥 내 서버를 설정하고 내 서버가 시간 당 하나의 모바일 장치를 일부 모바일 장치로 보내고 몇 분 후에 모바일의 현재 배경 화면이 내 서버가 이전에 보낸 서버인지 확인하고 싶습니다.

답변

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()); 
    } 
}