카테고리 보관물: 쓸모있는 정보

바탕화면에 위젯 추가하는 법

[2013/11/17] 업데이트. 앱을 SD카드로 이동하시면 위젯을 사용하실 수 없습니다. 용량 부족에 대한 얘기가 많아 옵션을 제공하였습니다만 위젯을 제공할 방법에 대해 고민중입니다.

———————

앱에서는 위젯을 추가해줄 수 없습니다.
안드로이드 정책상 막혀있기 때문인데요, 각 앱들이 멋대로 바탕화면에 위젯을 추가해버린다면 금세 홈화면이 카오스가 될 것이기 때문에 타당하다고 볼 수 있습니다.

사용자가 직접 위젯을 추가해줘야하는데 방법은 간단합니다.
(홈스크린 런쳐에 따라 화면은 다를 수 있습니다!)

 

Add Widget
1. 위젯 추가하는 방법은 사용하는 홈스크린 런쳐에 따라서 조금씩 다를 수 있는데 보통 홈화면에 있는 ‘+’ 버튼이나 홈화면을 오래 누르고 있으면 나타나게 됩니다.

 

 

Find Widget
2. 위젯을 추가하는 화면을 찾아서 추가하고자 하는 위젯을 선택, 화면의 원하는 위치에 배치할 수 있습니다.

 

done
3. 완성!

수동으로 AVD 삭제하기

“The android virtual device XXX is currently running in an emulator and cannot be deleted”라며 Android Virtual Device Manager에서 AVD를 삭제하지 못할 경우에는

사용자의 홈디렉토리로 가서 .android 디렉토리 아래의 avd 디렉토리에서 해당 AVD의 .avd와 .ini 파일을 삭제해버리면 된다.
(~/.android/avd/*.avd, *.ini)

x86 안드로이드 시뮬레이터에서 구글 지도 API 사용하기

  1. Android Virtual Device Manager에서 Target을 Google API를 포함한 “Google APIs (Google Inc.) – API Level 16” 같은 걸로 선택하여 AVD 생성
  2. 생성한 AVD 실행. emulator -avd name_of_avd
  3. 터미널에서 adb pull /system/etc/permissions/com.google.android.maps.xml
  4. adb pull /system/framework/com.google.android.maps.jar
  5. Android Virtual Device Manager에서 CPU/ABI를 Intel Atom (x86)으로 하여 AVD 생성
  6. 생성한 AVD 실행. emulator -avd name_of_avd
  7. adb remount rw
  8. adb push com.google.android.maps.xml /system/etc/permissions
  9. adb push com.google.android.maps.jar /system/framework
  10. mkfs.yaffs2.x86 다운로드
  11. adb push mkfs.yaffs2.x86 /data
  12. adb shell
  13. cd /data
  14. chmod 777 mkfs.yaffs2.x86
  15. ./mkfs.yaffs2.x86 /system system.img
  16. exit
  17. adb pull /data/system.img (...be patient)
  18. system.img을 avd 디렉토리안에 복사
  19. emulator 다시시작

How to use Google Maps API in Android emulator SDK version 17

Unable to build: Could not find dx.jar file

갑자기 Eclipse에서 안드로이드 소스 빌드가 되지 않았는데 다음과 같은 에러가 발생:

Unable to build: Could not find dx.jar file

구글링을 해보니 Android SDK Platform-tools를 지웠다 다시 깔아보고 clean후에 빌드하라고 하는데 해결이 되지 않았다.

그리고
'Installing this package also requires installing: - Missing SDK Platform Android, API 17'라면서 Android 4.2 (API 17)이 설치가 되지 않는 문제도 있었는데

찾아보니 Android SDK Manager 설정에서 ‘Clear Cache’를 하고 PackagesReload를 하니 업데이트된 Android SDK Platform-tools와 API 17이 나타나는 것이 아닌가.
아무래도 Android SDK Manager 내부의 캐시가 꼬였던 것인지 문제가 되었던것 같다.

[Titanium] 텍스트 내부의 링크 클릭 가능하도록 하기

라벨에서 텍스트속의 http://… 와 같은 하이퍼링크나 010-1111-1111 같은 전화번호를 터치로 선택하여 열거나 전화를 걸 수 있도록 하는 방법이다.

OS상의 제한인지는 모르겠지만 iOS에서는 TextArea에서, 안드로이드에서는 Label에서만 적용이 가능하다.

Android의 경우

textView =  Ti.UI.createLabel({
	left: '0dp',
	right: '0dp',
	top: '0dp',
	height: Ti.UI.SIZE,
	text: 'Text',
	autoLink : Ti.UI.Android.LINKIFY_ALL
});

iOS의 경우

textView =  Ti.UI.createTextArea({
	left: '0dp',
	right: '0dp',
	top: '0dp',
	height: Ti.UI.SIZE,
	value: 'Text',
	autoLink : Ti.UI.AUTODETECT_ALL,
	editable : false
});