본문 바로가기

안드로이드

launcher 에서 어플리케이션 아이콘 안보이게 하기 단말의 launcher 에서 내가 만든 어플의 아이콘을 숨겨야 할 때가 있다. (백그라운드에서만 동작해야 한다던지 사용자 임의로 액티비티를 실행시키지 못하도록 할 때) 이럴 때 PackageManager를 활용해서 런쳐 액티비티의 아이콘을 숨기도록 할 수 있다. 아래와 같이 간단하게 해결이 가능하다. 녹색부분이 어플리케이션의 패키지이고 주황색부분은 런쳐 액티비티의 클래스이름이다. 숨겨진 아이콘을 다시 보이도록 하고 싶을 때는 하늘색 부분을 PackageManager.COMPONENT_ENABLED_STATE_ENABLED 로 바꿔주면 된다. ComponentName componentToDisable = new ComponentName("com.example.gcmclienttest", "com.examp.. 더보기
전화 수신 시 코드상에서 수신 거부 스팸 처리 관련된 어플을 만들고 있다. 이왕이면 등록된 번호면 아얘 수신이 안되도록 하는 편이 더 나을것 같아서 방법을 찾아보았는데 생각보다 쉽지가 않았다. (검색을 못해서 그런건지도..) 암튼 외국 사이트에서 방법을 찾아냈는데 뭐.. LG U+ Galaxy S3 LTE(android 4.1.2)에서는 제대로 동작한다. 다른 단말에선 아직 테스트 못해봤음.. 뭐 국내 사이트나 블로그에서 안드로이드 2.3 에서부터는 ITelephony를 제조사 레벨에서만 지원한다는 글을 봤었는데 일단은 4.1.2 버전에서 제대로 돌아가니.. (삼성 단말기에서만 되는건지도...ㄷㄷㄷ) 자질구레한 설명 필요없이 동작하는 소스를 첨부한다. 더보기
화면 가운데로 축소되어 사라지는 애니메이션 그냥 애니메이션 XML에 scale 만 넣어주면 될줄 알았는데 요렇게 하면 화면 가운데로 축소되는게 아니라 좌측 상단으로 축소된다.. 그래서 요렇게 했는데.. 화면 중심으로 축소되는듯 하다가 좌측상단으로 축소되는 이상한 현상이...ㄷㄷㄷ 문제는 태그 위치였다.. scale 다음에 translate를 적용해야 한다.. 내부적인 이유겠지만.. 그리고 alpha 를 적용하여 자연스럽게 사라지는 효과를 추가 끗 더보기
안드로이드에서 커맨드 명령어 날려서 결과 확인하기 public static int isHostReachable(String hostIP, String where){Process process;Runtime runtime = Runtime.getRuntime();int hostReachResult = NETWORK_UNREACHABLE;try{String cmd = "ping -c 1 -i 4 -w 3 "+hostIP; //shell에서 실행할 명령, c: 횟수, i:간격, w:핑테스트 종료 시간DEBUG.log("isHostReachable", "where : "+where);DEBUG.log("isHostReachable", "cmd : "+cmd); process = runtime.exec(cmd);BufferedReader br = new Buff.. 더보기
Windows에서 andorid full source 받기 1. cygwin 설치 - curl, git, python, readline 패키지를 선택 2. cygwin에서 아래와 같이 실행① bin 디렉터리 만들고 환경변수 설정하기$ mkdir ~/bin $ PATH=~/bin:$PATH② repo 스크립트 다운로드 및 실행권한 주기$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo $ chmod a+x ~/bin/repo③ 작업할 디렉터리 생성 후 이동$ mkdir WORKING_DIRECTORY $ cd WORKING_DIRECTORY④ repo 초기화 하기. 이때 마스터 브랜치가 아닌 다른 브랜치로 설정하고 싶은 경우 '-b' 옵션으로 명시$ repo init -u http.. 더보기
해상도에 관해서.. 안드로이드를 공부 하다가 해상도가 다른 다양한 디바이스를 고려해야 한다는 사실에 검색 일단 잘 정리되어있는 포스트 투척~! http://bunhere.tistory.com/211 뭐 일단 최초의 모니터 비율인 VGA(Video Graphic Array)는 4:3 비율의 640:480 해상도 이며 SVGA(Super)는 비율을 유지하며 해상도를 늘린 800:600 XVGA(Extended)는 좀더 늘린 1024:768 그 다음부터 4:3이 아닌 5:3비율을 쓰기 시작한 SXGA로 1280:1024 또 모바일에서 쓰는 HVGA는 half QVGA는 Quater 아래 링크는 안드로이드 UI 관련하여 DIP 에 대해 상세히 설명되어 있는 포스팅.. 요약하자면 dip라는 단위를 쓰면 화면 비율에 맞게 적절히 확대.. 더보기
2011/06/10 안드로이드 프레임워크의 클래스 파일에 api 또는 property 추가하기 회사에서 일하다가 안드로이드 framework 소스에 api 와 property를 추가할 일이 생겼다.. 뭐 인터넷 뒤져봐도 마땅한 자료도 없고..(내가 검색능력이 딸리는건지도??) 결국 삽질끝에 어떻게 해결을 하게 되었다.. 1. api 추가 시 => 그냥 추가하면 됨.. - 예를 들어 TextView.java 에 메소드를 추가한다고 하면 TextView 클래스에 메소드를 추가하면 된다. 2. property 추가 시 \frameworks\base\core\res\res\values\attrs.xml => 속성값 추가 \frameworks\base\core\res\res\values\public.xml => 속성값에 대한 id 부여 속성을 추가한 오브젝트의 클래스 파일에 해당 속성값을 담을 수 있는 멤.. 더보기
2011/06/06 안드로이드 네이티브 소스에서 캘린더 소스 이클립스에서 빌드하기 조붕이랑 간단한 프로젝트를 시작했다. 일정 관련 어플을 만들기로 했는데.. 네이티브의 캘린더 소스를 분석해보면 좋을것 같아서 이클립스로 포팅을 시작했다.. 역시나 라이브러리 관련 에러가 발생한다. 대략 아래 세개의 패키지를 import 하는 부분에서 에러가 발생하는데 진저브레드 풀소스를 빌드한 후 생성되는 jar 파일을 import하면 해결된다. (External jar 가 아닌 User library로 import 할 것!!) import dalvik.system.VMRuntime; => \mydroid\out\target\common\obj\JAVA_LIBRARIES\core_intermediates import android.provider.Calendar; => \mydroid\out\target.. 더보기
64bit Ubuntu에서 Ginger bread 빌드 시도! http://source.android.com/source/download.html => 안드로이드 오픈 소스 프로젝트 사이트.. http://geneus.egloos.com/3093788 => 개발환경구축부터 빌드까지 자세히 설명되어있는 포스트 우선 나는 진저브레드를 빌드하기 위해서 VMware에 64bit Ubuntu를 설치했다. 그리고 안드로이드 오픈 소스 프로젝트 사이트에 나온 설명대로 진행 #sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-.. 더보기