2013. 12. 30.

삼성 갤럭시 시리즈 2.3.x 에서 위젯 업데이트 안되는 이슈 분석

진행하고 있던 프로젝트에 이슈가 발생

갤럭시S 2.3.3 에서 위젯이 업데이트 되지 않고 이전 모습이 계속 보여진다

대충 아래처럼 생긴 위젯인데..


하나씩 확인 시작!

1. 로그에 출력되는 Exception?
    :: 없음

2. 이미지 bitmap 이 null인가?
    :: null 아님, 샤방한 이미지가 있음

3. 갱신을 못하고 있나?
    :: appWidgetManager.updateAppWidget(..) 잘 호출됨

4. 타이밍 이슈인가?
    :: 한번만 출력하게 해도 안나옴 -_-;;

...

뭐지.... -_-;;


답은 "난 멋진 이미지"에 들어갈 수 있는 이미지의 크기에 제한이 있어서!

우선 480x480 bitmap을 넣으면 위젯이 뻗는다.
최대 크기는 테스트를 해 보지 않았고

110x110 bitmap은 잘 들어가는군!

삼성단말만 예외처리하기는 애매해서 허니컴 이하 버전 전체를 예외처리


Bitmap bitmap = null;
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
  //삼성 갤럭시 시리즈 2.3.x 단말에서 이미지의 크기가 크면
  //위젯이 갱신되지 않고 뻗어버리는 이슈가 있어 수정
  int maxSizeBeforeHoneycomb = 110;
  bitmap = ImageUtil.decode(imagePath);
  if (bitmap.getWidth() > maxSizeBeforeHoneycomb) {
     Bitmap scaled = Bitmap.createScaledBitmap(bitmap, maxSizeBeforeHoneycomb, (bitmap.getHeight() * maxSizeBeforeHoneycomb) / bitmap.getWidth(), true);
     bitmap.recycle();
     bitmap = scaled;
  }
} else {
  bitmap = ImageUtil.decode(imagePath);
}

remoteView.setImageBitmap(R.id.iamniceimage, bitmap);


삼성 이시키들.. 이미지를 못쓰면 로그라도 출력해야지...
그냥 멈춰버리다니..

끝..

[다자녀할인] 2자녀 이상 모든 공항 주차장 50% 할인받기 (둘 중 한명은 15세 이하)

다자녀 기준이 2명으로 완화되면서 자녀가 2명만 되어도 공영주차장 50%(지역에 따라 30%인 곳 도 있음) 할인이 가능하고, 전국의 공항주차장도 50% 할인이 가능하다. "다둥이카드" 나 "경기 I Plus 카드"...