본문 바로가기

Android

안드로이드 디스플레이 크기 값 얻어오기 개발을 하다보면 아이폰이나 아이팟 혹은 아이패드처럼 딱 지정된 몇개의 해상도만 쓰는것이 아니라. 워낙 기기별로 뒤죽박죽이라서 디스플레이를 멀 쓰는지 필요할때가 생겼다. 간단하게 해당 소스를 사용해서 디스플레이의 width 및 height 값을 가져올 수 있다. Display display = ((WindowManager)getSystemService(WINDOW_SERVICE)).getDefaultDisplay(); int display_width = display.getWidth(); int display_height = display.getHeight(); 더보기
안드로이드에서 현재 최상위 Activity 값 알아보기 안드로이드 어플을 개발하면서 Activity중 어느 Activity가 현재 최상위에 나와있는지 조건문으로 확인을 하려고 했는데, 어디서 봐야할지를 몰라서 고민하던중 찾은 방법이다. ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE); List Info = am.getRunningTasks(1); ComponentName topActivity = Info.get(0).topActivity; String topactivityname = topActivity.getPackageName(); 해당 소스를 작성한뒤 Log.d(TAGNAME, topactivityname); 위와 같이 로그를 찍어보면 최상위 Activity.. 더보기
안드로이드 Cursor 사용시 Finalizing a Cursor that has not been deactivated or closed. 문제 해결. 안드로이드 앱을 만들면서 앱자체가 죽어버리지는 않는데, LogCat 상에서 붉은색 글씨로 Finalizing a Cursor that has not been deactivated or closed. 이라는 메시지가 나왔다. 검색을 해보았더니 메모리 릭이 발생하는 부분이라서 어찌되었든 수정이 필요한 부분이었다. 처음에는 단순히 try { } catch(SQLException e){} 정도로만 처리해주면 될 줄 알았는데, try 문 안에 넣어줘도 결과는 마찬가지였다. 소스를 전체적으로 다시 보면서 커서 사용시 닫아줘야 하는데 실제로 안닫아 주고 그냥 넘어간 부분들이 많았다. 예를 들면 Cursor mCursor = null; mCursor = mDb.query(true, DATABASE_TABLE, new .. 더보기
안드로이드 모델명 및 브랜드 이름 등 값 가져오기 기기별 혹은 브랜드 별로 구분을 해야 할 필요등이 생겼을때 유용한 방법 입니다. import android.os.Build; // android.os.Build 를 참조하기 위해서 import 합니다. Log.i("BOARD", Build.BOARD); Log.i("BRAND", Build.BRAND); Log.i("CPU_ABI", Build.CPU_ABI); Log.i("DEVICE", Build.DEVICE); Log.i("DISPLAY", Build.DISPLAY); Log.i("FINGERPRINT", Build.FINGERPRINT); Log.i("HOST", Build.HOST); Log.i("ID", Build.ID); Log.i("MANUFACTURER", Build.MANUFACTURE.. 더보기
안드로이드에서 Device의 고유값 알아보기 프로그래밍을 하다보면 특정 장치라는것을 식별하기 위한 값들을 가져와서 각 장치별로 구분이 가능해야 하는데, 이때 쓸만한 것이 전화번호, IMEI값(?), MAC주소 같은것이 될것 같네요. // 고유 값 알아보기 // 휴대폰의 전화번호 가져오기 TelephonyManager mgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); String phoneNumber = mgr.getLine1Number(); WifiManager wifi = (WifiManager)this.getSystemService(Context.WIFI_SERVICE); String imei = mgr.getDeviceId(); WifiInfo info = wifi.g.. 더보기
이미지 기본 상태와 Press 상태에 따라서 다른 효과 보여주도록 xml 파일 만들기 이미지 기본상태와 Press 상태에 따라서 다른 효과를 보여주고 싶었는데, 소스에서 하나하나 조건식으로 하려니까 별로 좋은거 같지 않았는데, 쉬운 방법을 찾았다. xml 파일을 drawable 폴더쪽에 하나 생성해서 쓰면 되는데 아래와 같은 방식으로 만들어서 넣으면 되고, 이후에 이미지 버튼을 선언할때 ImageButton btn = (ImageButton) findViewById(R.id.생성한xml파일) 식으로 선언해 주면 된다. 더보기