레이블이 Android인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Android인 게시물을 표시합니다. 모든 게시물 표시

2020. 4. 20.

Android Gradle dependency, conflict / 그래들 의존성 검사 및 충돌 해결방법

안드로이드에서 사용되는 라이브러리의 버전 확인 및 충돌해결방법

원본: 


검사
- gradlew app:dependencies


해결
- 버전지정: implementation "org.hamcrest:hamcrest:버전명"
- 모듈제외: implementation("org.hamcrest:hamcrest:버전명") { exclude group: "org.hamcrest", module: 'hamcrest' }
- 해결방법지정: android{ configurations.all{ exclude group: 'org.hamcreset', module: 'hamcrest' resolutionStrategy{ forcedModules = ['asm:asm-all:3.3.1'] } } }

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


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

끝..

2013. 11. 25.

넥서스 4 킷캣(Kitkat) 수동 업데이트 링크

저번주(11월 4째주) 넥서스4 킷캣(4.4) OTA 시작!
그런데, 내 넥4는 아직 안온다ㅠㅠ
일주일이나 기다려 줬으면 올때도 됐것만...

checkin 이나 service framework를 몇번 죽이고 지우고 실행해 봤지만
여전히 안오길래 수동 업데이트 ㄱㄱ


젤리빈 4.3 build JWR66Y 에서 킷캣 build KRT16S로 업데이트 파일 다운로드링크

http://android.clients.google.com/packages/ota/google_mako/c7d8660af65b878835d5248252f51dcbf53c2001.signed-two-step.signed-occam-KRT16S-from-JWR66Y.d1b99704.zip


구글 사이트라 금방 받아지고..
업데이트는 젤리빈 수동 업데이트와 동일하게 하면 샤삭!
킷캣 업데이트 완료!

젤리빈 수동 업데이트 방법은 아래 링크에
http://ini-s.blogspot.kr/2013/07/4nexus-4-43jwr66v.html

[adb sideload 파일이름 을 입력하면]


[adb sideload 완료 후 가장 아래쪽의 wipe cache partition 권장]
- 주의 wipe data / factory reset 실행 금지 - 실행시 데이터 삭제됨 ->  
[Reboot system now 실행 하면 끝]







변경된 화면들
- 알람바 설정화면


- 위치 서비스


- NFC 탭엔페이 (모바일네트워크 -> 더보기 -> NFC 체크가 활성화 되었을때만 표시)


- 인쇄


더 바뀐 부분은 찾아보세요~

끝!

2013. 7. 27.

넥서스4(Nexus 4) 젤리빈 4.3(JWR66V) 수동 업데이트(순정)

간단요약

1. update 다운로드
2. 리커버리 모드 진입
    폰 종료 - "볼륨 업+다운+파워" 로 부팅 - Recovery 선택
3. 볼륨 업 + 파워 를 동시에 살짝 눌러 리커버리 메뉴 선택
4. apply update from adb 선택
5. 넥4와 PC를 연결하여 아래 명령어를 입력
    adb sideload 파일명

끝

................

안드로이드 젤리빈 4.3이 나왔길레 OTA 받으려고
Checkin 을 했으나 최신버전을 사용중이라는 메시지 ㅡㅡ;;

구글링을 좀 했더니 update.zip 주소가 있어서 얼른 받았는데,



Nexus 4 리커버리 모드에서 설치하려 했더니
외국 사이트의 내용과 다르게
"apply update from sdcard"
메뉴가 없다.. 헐..

그걸 대신하는
"apply update from adb"

잉.. 이건 뭔가..

adb로 어떻게 되겠지 했는데...
웬걸 넥4 리커버리 모드가 윈도우에서 인식이 안된다.

별 쑈를 다 했지만 인식 불가로 드라이버 직접 수정 (아래에서 받으세요)


이제 시키는대로 adb를 이용하여 업데이트
adb가 없으시면 요기
https://docs.google.com/file/d/0BzeVlrv78zD2TlpWNko2OHYtQTA/edit?usp=sharing

여기서 closed 에러가 발생하시는분은..
adb usb
adb sideload ....
로 입력하시면 됩니다.
(tcpip를 사용 하셨었으면 tcpip를 먼저 시도해서 에러가 발생한다네요..)

그럼 폰에서는?

흠흠...


님이 오셨습니다~~~

Nexus 4 Recovery driver / 넥서스4 리커버리 드라이버

수정된 구글 USB 드라이버 - Nexus 4 리커버리 모드 인식가능


구글에서 제공해주는 usb_driver를 이용하여 nexus4를 인식시키려 했더니
recovery mode에서 인식이 안된다..

구글링 하고 갖가지 드라이버를 다 받아봤는데 인식이 안되길레..

드라이버 수정했다 -_-;;;


수정내역은.. 넥4의 PID 추가

;Google Nexus 4
%SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_D001
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_D002&MI_01
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_D004&MI_02
%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_D006&MI_01

끝!

2013. 7. 22.

[Android]TextView - CompoundDrawable을 이용한 버튼만들기


이렇게 생긴 버튼을 만들고 싶을때

안드로이드에서 주로 TextView를 사용한다.

위의 예에서 아이콘이 drawable폴더에 icon.png 파일로 저장되어 있다면

^TextView
     android:id="@+id/btn_tag"
     android:layout_width = "wrap_content"
     android:layout_height = "fill_parent"
     android:drawableLeft = "@drawable/icon"
     android:text="태그"
     android:drawablePadding = "4dp"
     android:gravity = "center_vertical"
     /^

^를 <>로 바꾸세요

정도로 만들 수 있다.

하지만 실제 만들어보면


위 처럼 글자가 아래로 1~2px 내려간다.


왜~ 중앙정렬을 해야 한단 말이다!!!!
center_vertical 인데... 왜 ㅠㅠ


1) 이미지의 윗부분을 1~2px 키워볼까....?
2) ImageView와 TextView를 분리하고 부모에 Click 속성을 줘야하나...?


해답은 의외로 간단한 곳에 있었다..


폰트에는 기본적으로 padding이 만든사람 마음대로 들어가 있고,
이를 인지한 구글에서 paddind을 제외할 수 있도록 해 둬서
옵션만 주면 정 중앙에 맞게 그려진다...
(삽질 한시간... 에이 바보야...)


android:includeFontPadding="false"

끝!

2013. 7. 11.

[Android] Custom animated Framgnet 숨기기 동작 수정 / Solution for hiding custom animated fragment

은근히 많은 안드로이드 SDK의 버그...

Fragment를 이용하여 화면을 구성할 때,
Fragment를 분명히 hide 시켰는데, hide되지 않는 경우가 있다..


위 Activity에 다음처럼 명령을 주면
  1. add - Fragment A
  2. add - Fragment B
  3. hide - Fragment A


기대하는 결과는


....

하지만 현실은





젠장... 왜 -_-;; 난 hide를 분명 했단 말이다!!

현재까지의 버전(젤리빈 4.2.2, Android support pack rev 13) 에서 이 문제를 해결하기 위해서는

    1. Fragment A 의 현란한 애니메이션을 삭제 -> 까이꺼 날려버려~
    2. Fragment B 에서 수동으로 attach / detach -> state까지 기억해야돼.. 귀찮아 ㅜㅜ

을 해야 한다.


1번은 간단히
fragmentTransaction.setCustomAnimation(...)    <= 빠이염~


2번은 간단히... (진정 간단하냐....?? 정말?)

public class FragmentB extends Fragment {

  @Override
  public void onHiddenChanged(boolean hidden) {
      super.onHiddenChanged(hidden);
  
      FragmentManager fm = getActivity().getSupportFragmentManager();
      if (hidden) {
        fm.beginTransaction().detach(this).commit();
      } else {
        fm.beginTransaction().attach(this).commit();
      }
  }

  @Override
  public void onSaveInstanceState(Bundle outState) {
    //내위치는 어디고,
    //선택은 뭐가 되었고,
    //사용자가 입력은 뭘 했구만..
    //오키~ 저장완료

    super.onSaveInstanceState(outState);
  }

  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    ...

    if (savedInstanceState != null) {
      //위치를 다시 옮기고
      //선택을 다시 해주고
      //입력한거 다시 입력해주고
      //짜잉나! -_-;;
    }

    ...

  }
}

간단하죠?

...

(돌 던지지 마세요... )
그래서 개선 했어요 ㅡㅡㅋ



public class FragmentC extends Fragment {
  private View mContentsView;

  @Override
  public void onHiddenChanged(boolean hidden) {
      super.onHiddenChanged(hidden);
  
      FragmentManager fm = getActivity().getSupportFragmentManager();
      if (hidden) {
        fm.beginTransaction().detach(this).commit();
      } else {
        fm.beginTransaction().attach(this).commit();
      }
  }

  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    if (mContentsView == null) {
      mContentsView = inflater.inflate(....);
    } else {
      ViewParent parent = mContentsView.getParent();
      if (parent != null && parent instanceof ViewGroup) {
        ((ViewGroup)parent).removeView(mContentsView);
    }

    return mContentsView;
  }
}


끝~

2013. 5. 30.

Listview - Header / Footer view IndexOutOfBoundsException (진저이하)

진저브레드 이하에서 Header view와 Footer view를 사용할 경우 아래처럼
IndexOutOfBoundsException이 발생하는 경우가 생긴다..

E/AndroidRuntime(11497): FATAL EXCEPTION: main
E/AndroidRuntime(11497): java.lang.IndexOutOfBoundsException: Invalid index 1, size is 1
E/AndroidRuntime(11497): at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:257)
E/AndroidRuntime(11497): at java.util.ArrayList.get(ArrayList.java:311)
E/AndroidRuntime(11497): at android.widget.HeaderViewListAdapter.isEnabled(HeaderViewListAdapter.java:164)
E/AndroidRuntime(11497): at android.widget.ListView.dispatchDraw(ListView.java:3062)
E/AndroidRuntime(11497): at android.widget.ExpandableListView.dispatchDraw(ExpandableListView.java:233)
E/AndroidRuntime(11497): at android.view.View.draw(View.java:7093)
E/AndroidRuntime(11497): at android.widget.AbsListView.draw(AbsListView.java:2699)
E/AndroidRuntime(11497): at android.view.ViewGroup.drawChild(ViewGroup.java:1739)
E/AndroidRuntime(11497): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1466)
E/AndroidRuntime(11497): at android.view.ViewGroup.drawChild(ViewGroup.java:1737)
E/AndroidRuntime(11497): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1466)
E/AndroidRuntime(11497): at android.view.View.draw(View.java:6989)
...


발생 원인은
어댑터가 가지고 있는 아이템의 갯수가 줄어들었을 때,
HeaderView와 FooterView를 핸들링 하기 위해 안드로이드 내부적으로 가지고 있는 HeaderViewListAdapter 의 count가 같이 변경되지 못해 발생하는 것으로

안드로이드 프레임 웍에서 onDraw 호출 시 HeaderViewListAdapter의 getCount()를 호출하여 아직 갱신되지 않은 아이템 갯수를 받아가기 때문에 발생한다.

따라서 아이템의 갯수가 변경되면 그 즉시 notifyDataSetChanged()를 호출하여 HeaderViewListAdapter의 getCount()를 갱신해 주면 해결이 가능하다.

...젠장.. 어렵구만...

2013. 5. 15.

Listview - Headerview item visibility 변경

Listview에 헤더뷰를 추가 하였을 때,
추가한 view의 visibility를 gone으로 하여도 영역이 남는 문제는 어떻게 해결할까...

간단히
추가할 뷰(a)를 LinearLayout으로 감싼 후 HeaderView로 추가하고,
a의 visibilitiy를 변경하면 됨.

참고자료 :
http://pivotallabs.com/android-tidbits-6-22-2011-hiding-header-views/

2013. 1. 9.

MacOS 에서 MTP 사용 (Using mtp transfer on MacOS

넥서스4 MacOS에서 사용하기 1탄 - MTP 사용

MacOS 에서는 MTP가 자동지원되지 않아 이동식 기기로 등록이 되지 않으니
아래의 주소에서 파일을 다운로드 하여 사용하면 됩니다.

http://www.android.com/filetransfer/

끝~~

2012. 3. 21.

[ICS / Honeycomb] 여러개의 AsyncTask (병렬) 실행

안드로이드 버전 허니컴 / ICS가 AsyncTask의 동작이 다릅니다.

허니컴에서는 AsyncTask를 생성해서 .execute()만 호출해주면
하나 이상의 AsyncTask가 사전에 동작하고 있더라도 병렬 처리가 되지만,

ICS에서는 Serial 하게 동작해서 이전의 AsyncTask가 끝나기를 기다립니다.
따라서 이전의 AsyncTask가 동작하고 있다면, 새로 동작시키고자 한 AsyncTask가 영원히 시작되지 않을 수도 있습니다.

해결방법은 아래처럼 시작을 호출하면 병렬처리가 됩니다.^^

.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);

참고하시길...

2011. 9. 15.

[Neo] 갤럭시 네오 진저브레드 루팅하기

갤럭시 네오 (Galaxy Neo) 진저브레드 루팅하기
단말기를 루팅할 경우 AS 등에 불이익을 받으실 수 있으며, 아래 내용을 따라하다 발생하는 사고에 관해서 본인은 책임을 져 드릴 수 없으니 자신 없으신 분들은 주위에 컴퓨터를 잘 하는 친구의 도움을 받으시거나 순정그대로 사용하시기를 권장합니다.
또한 금일 2010.09.15일을 기준으로 Galaxy neo 진저브레드의 루팅방법 및 관련 파일이 업로드 되어 있는 동호회, 사이트가 없으므로 퍼가실 때에는 출처를 꼭 명기해 주시기 바라며 전체 내용을 복사해 가지 마시고 제사이트를 링크해 주시기 바랍니다.


2011.09.25 일 추가
22일 업그레이드 된 TI08에서는 SU가 안생겨서 루팅이 안되네요.
다른 방법 찾아보고 포스팅 해 드릴께요^^


[Galaxy neo spec]
- LG U+ 전용(CDMA Rev.A 방식, USIM 없음)
- 할부원금 없음. (내가 구입할 때는 5만원)
- Android 2.3 진저브레드(2.2에서 업그레이드 됨)
- 800x480 wvga 해상도(보급형 중에서는 고해상도)
- 800Mhz AP
- 256M Ram
- 200M 앱 설치공간

1. 루팅 환경
- 펌웨어 버전: 2.3.4
- 빌드번호: GINGERBREAD.TH13 / TL14
- 삼성 KIES를 통해 2011.09.12일경 업그레이드 한 순정 상태

2. 준비물
- Samsung Kies가 설치되어 있거나
- Galaxy neo용 통합 드라이버가 설치되어 있을것. [드라이버 다운로드]
- update.zip 파일 [다운로드 링크]
- micro sd카드(메모리카드)

3. 루팅하기
- 갤럭시 네오와 PC를 데이터 케이블을 사용하여 연결

- 네오의 화면에 이동식 메모리 화면이 뜨면 "이동식 메모리 연결" 버튼을 눌러 이동식 디스크를 사용하도록 설정


- SD카드의 최 상위폴더에 위에서 다운로드한 update.zip 파일을 복사
(내컴퓨터 -> 이동식 디스크 // 왼쪽처럼 하여 보이는 폴더에 다운로드한 파일을 붙여 넣으면 됨)


- "USB 저장장치를 끄세요" 버튼을 선택하여 이동식 디스크 해제

- 파워 버튼을 눌러 갤럭시 네오 종료

- HOME 키를 누른 상태로 파워키를 눌러 전원을 켬, 화면에 Galaxy Neo 글자가 보이면 파워버튼은 떼도 됨.

- 아래와 같이 리커버리 화면이 보이면 소리낮춤(Volume down) 버튼을 눌러 "apply update from sdcard"를 선택한 후 Home 키를 누름


- SD 카드의 내용이 보이면 Volume up/down 키를 사용하여 update.zip 파일을 선택한 후 Home키 누름


- 파일의 설치가 끝나고 complete 메시지가 화면에 보이면 "reboot system now"를 선택한 후 Home키를 눌러 재부팅

- 끝! 설치된 앱 목록에 Superuser가 보이면 루팅 완료^^

요렇게 갤럭시 네오 진저브레드 TH13의 루팅 끝~!

계속적으로 갤럭시 네오와 관련된 정보를 올릴 수 있도록 오른쪽에 광고 한번씩만 클릭해 주세요 +.+;;
버전이 또 업그레이드 되면 또 업데이트 할 수 있도록 노력해 보겠습니당ㅋ

2011. 7. 18.

안드로이드 전체 소스 다운로드 (Android full source download)

안드로이드 소스를 파이썬 스크립트(repo)를 사용하여 git으로 다운로드하면
다운로드에만 한시간 이상이 걸립니다. (너무 느리죠... 특히 나같이 성격 급한사람에게는...)

그래서 찾은 스크립트...
git을 이용한 간단한 스크립트인데 역시 아는것이 힘이고
모르면 손발이 고생이네요 -_-;;

http://android.git.kernel.org/?p=platform/frameworks/base.git;a=snapshot;h=HEAD;sf=tgz

이렇게 입력하면 tgz로 압축된 파일 하나로 전달되고 20분 정도면 풀 소스 다운로드가 됩니다.
(h=HEAD이기 때문에 git에 공유되어 있는 최신 버전이 그냥 다운됩니다.
특정 리비전을 아신다면 저기를 바꾸시면 되겠죠...)

원문 출처는
http://geekycoder.wordpress.com/2009/07/03/how-to-download-latest-zip-android-source-code-and-using-it-in-intellij/
입니다.

2011. 6. 3.

[Nexus One] FRG83G (Froyo)로 복귀하기 위한 롬 모음

Rooted / Trackball wake / a2sd / cache2sd 관련 Custom rom 모음
- http://forum.xda-developers.com/showthread.php?t=927935

Stock 순정 롬

관련 방법은 천천히

2011. 5. 23.

언루팅 Unrooting 방법

루팅 흔적 지우기

루팅 상태에서 아래의 파일들을 삭제.
system/bin/su
system/xbin/su
system/app/superuser.apk
data/data/com.noshufou.android.su

Root Explorer를 사용하여 삭제하면 되며
한번에 위 파일들을 삭제 못하면 추가로 삭제를 하지도 못하는 상황이 되어
루팅도 언루팅도 아닌 상태가 되니 한번에 싹 지워야 함.

반루팅 상태면 다시 루팅을 한 후 위 파일들을 지우면 됩니다.

2010. 11. 25.

[Android]인텐트 - Intent

Intent
- 애플리케이션 내부와 애플리케이션 간의 메시지 전달 메커니즘

1. 명시적 사용 : 실행할 클래스를 직접 지정하는 방식 (하나의 어플리케이션 내부에서 사용)

Intent intent = new Intent(ThisActivity.this, RunActivity.class);
startActivity(intent);
//실행한 Activity로부터 결과값을 받아야 할 경우
//startActivityForResult(intent);


2. 암시적 사용 : 특정 데이터에 대해 수행될 액션을 요청하는 방식

Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:555-1111"));
startActivity(intent);


주의 : 하위 Activity도 반드시 AndroidManifest.xml에 등록 되어야 함

3. 하위 Activity로 부터 결과값 전달 받기
- 하위 Activity를 구분하기 위해 고유값(RESULT_NEWACTIVITY) 전달

private static final int RESULT_NEWACTIVITY = 1001;
Intent intent = new Intent(this, NewActivity.class);
startActivityForResult(intent, RESULT_NEWACTIVITY);


- NewActivity에서는 Result값을 돌려주어야 함

public void onStop()
{
setResult(RESULT_OK);
finish();
//혹은 추가적인 정보를 넘겨주기 위해 Intent를 같이 넘겨줄 수 있음
//Intent result = new Intent();
//result.putExtra("Select Account", "1");
//setResult(RESULT_CANCELED, result);
//finish();
}


- 하위Activity가 종료되면 호출한 Activity의 onActivityResult가 호출됨 여기서 호출한 결과를 처리

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode)
{
case RESULT_NEWACTIVITY:
break;
}
}



Intent Filter
- 어플리케이션이 서비스 할 요청을 정의하기 위해 사용
- Action type, mimetype, 스킴(http, mailto, tel 등), 사용자 정의 타입등을 등록할 수 있음


인텐트를 이용한 이벤트 방송

Intent intent = new Intent(NEW_MINIST_INTENT);
intent.putExtra("ministName", strName);
intent.putExtra("longitude", currentLongitude);
intent.putExtra("latitude", currentlatitude);
sendBroadcast(intent);


브로드캐스트리시버

public class MinistBroadcastReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
//수신된 인텐트 처리
}
}

- onReceiver는 무조건 5초이내에 끝내야 함, 그렇지 않으면 ANR 발생
- 종료된 상태에서도 일치하는 인텐트가 방송되면 실행됨 => 리소스 관리에 도움됨
- 화면에 보이지 않거나 종료될 때 receiver를 등록해제 해 주는것이 바람직함 -> 메모리관리
- AndroidManifest.xml 에 등록





- 코드로 등록

IntentFilter filter = new IntentFilter(NEW_MINIST_INTENT);
실행될_CLASS_name classX = new 실행될_CLASS_name();
registerReceiver(classX, filter);
//등록 해제 시
//unregisterReceiver(receiver);

2010. 10. 4.

넥서스원 2.2.1 업데이트 실패기

xda-developers 및 안드로이드펍에서 2.2.1이 OTA 중이라는 소식을 듣고 오매불망 기다리던 중 드디어 나의 넥원이도 2.2.1 업데이트 화면이 뿅!

(오+.+ SKT에서도 OTA가 되는구나.. 구글 만쉐~!
이거 캡쳐 성공한 사람이 얼마나 될까ㅋㅋ)

얼른 재시작 및 설치를 눌렀는데,

안드로이드 로봇이 박스옆에서 없어지지가 않는다....
한 10분 기다렸는데도 반응이 없어서 전원 + 볼륨Down + 트랙볼로 재부팅 후
수동 업데이트 실시...

헐.. CRC Failed 뜬다.... ㅜㅜ
OTA가 다운로드가 실패한 것은 아닐테고..
rooting해서 amazon MP3를 지워버렸더니 이것 때문인듯...

하지만 STOCK로 돌아가기엔 설치한 것이 너무 많다구요 ㅠ,.ㅠ
Amazon Mp3만 다시 넣어서 해봐야지+.+;;

2010. 9. 15.

넥서스원(Nexus One)에서 Tmap 동작화면

9월 7일 Desire 의 Froyo 업데이트와 함께 Tmap for Froyo가 나왔다.
기대하는 마음으로 설치하러 갔는데, 업로드 한시간만에 버그가 있어서 다운로드 중지!
14시 재 업로드한다고 공지가 떠서 밥먹고 와서 바로 들어갔더니,
웬걸.. 14일이란다 -_-;; 네비용 아몰레드를 추가 구입한 것이 탁월한 선택이었나 -_-??

13일 예상보다 하루 빨리 Desire for Froyo가 다시 업데이트 되었고,
관련 글을 보자마자 바로 업데이트 +.+

기대하는 마음으로 실행해 보니....

귀여운것.. 잘 되는구나..

혹시나 싶어 길 안내도 해보고 이것저것 눌러봤는데

디자이어가 아니다.. 넥서스원!
Ecleir때도 그랬지만, 정상적으로 넥원으로 인식한다 -_-;;
Tmap 제작사에서는 Nexus one 까지 지원하도록 만들었다는 말인데...
KT 넥서스원때문에 막은건가...

어쨋든 Tstore에서 Nexus one은 Tmap 지원불가기기...
SKT 님하.. 이거 좀 어케 안되겠니 +.+?
내가 베타테스터 해 줬으니 이제 지원목록 추가만 좀 해주센...
나도 1년 무료사용 좀 합시다!!(개인인증까지 받았는데 이러면 섭하자나ㅜㅜ)

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

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