반응형

Android 28

안드로이드 + sqlite 에서, long 은 integer 로 동작한다.

그렇다네? 동적으로 byte를 할당하나 보다. 자세한건 언제나 진리인 stackoverflow 를 참고하자 -> http://stackoverflow.com/questions/8672473/is-there-type-long-in-android-sql 원래 하려고 했던게, 1. datetime 을 DB로 다뤄야 하는데2. sqlite 사용.3. sqlite 는 text base 이기 때문에 ASCII 타입 이외의 데이터가 좀 애매하지??4. datetime -> unixtime 으로 변경해 다루기로 결정.5. unixtime이 long 이 걸린다. 6. 검색7. stackoverflow 님께서 답변. 그러하다.

안드로이드에서 카메라 지정할 때, 카메라가 1개일때랑 2개일때랑 다르다.

코드 짜면서 "어? 이거 카메라 두개면 어쩌지?" 하고 생각했는데,바로 터졌다. 혹시 Android Camera 관련 코드 짜다가. camera.open() 이후에 바로 NullPointerException 나오는 사람은 아래의 글을 읽어볼 것. 1. 안드로이드 카메라는, Camera camera1 = Camera.open(); 과 같은 코드로 카메라 장비에 대해 자원 할당을 요청한다. 2. 근데... 카메라 두개면 어쩌냐? 알아서 할당해줌??요즘은 카메라가 앞 / 뒤 둘 다 달렸잖아.그럼, 저 카메라가 주는 Camera 가 앞 카메라인지, 뒷 카메라인지 어찌 아누? 3. 안드로이드 4.1.2 에서는, 3.1. 카메라가 1개일 때는 Camera.open(); 으로 할당 3.2. 카메라가 2개일 때는, C..

뭬라? 이클립스의 appcompat 디렉토리를 지웠단 말이더냐?

내가 그랬다... -_-;;;; X 될 뻔 했음. 복구법을 알려주마. 1. 상황 :안드로이드를 이클립스로 개발하면, 프로젝트 만들 때 appcompat_v7_X 하는 디렉토리가 생긴다.2. 이거 내가 안쓰는 건데 자동으로 생겨서 3. 어느날 지워버림.4. Warning 과 Error 가 강물처럼 흘러넘치게 되었다. 뒤져보니까 저 디렉토리가 괜히 생긴게 아니라는군.Wizard 로 Android Project 생성하면 자동 생성되는 부분( 테마 , Start Activity 등 ) 이 있는데, 거기에 쓰이는 라이브러리라고 함. 즉, 지우면 X 됨. [ 이런 짤이 있다니... -_-;;; ] 복구는 일단... 아래의 링크를 보고 이야기하자. http://chanyhan.tistory.com/entry/andr..

이클립스에서 폰 디버깅이 안 될 때.

업무상 여러 폰을 테스트하는데, 가끔 저런 황당할 때가 있다. 처음엔 해결책을 몰라서 버벅댔는데, 지금은 대충 보인다. 고로 기록해 놓는다. 상황 : 이클립스에서 Run 버튼이나 Debug 버튼을 실행해도, 프로그램이 폰에서 실행되지 않고 AVM( 안드로이드 가상 머신 ) 에서만 실행되는 경우. 해결 :1. 너님의 폰이 데스크톱 PC에서 인식되는지 봐라.-> 이클립스도 결국 PC 위에서 돌아가는지라, PC 자체가 폰을 인식하지 못하면 이클립스가 아니라 이클립스 할아버지라도 안된다. 보통 스마트폰은 PC에 꼽으면 바로 인식된다. 고로, 해당 인식 화면 자체가 안나오거나, PC의 파일탐색기를 실행시켜도 스마트폰이 탐색기에 안 뜬 다면, PC가 너님 핸폰 자체를 Detect 못 하고 있는거임. 이 경우, 해당..

Android 에서, 문자 발송 성공/실패 처리.

일반적으로 Android 에서 문자( SMS )를 전송할 때는 SMS 객체를 쓴다. 대충 코드로 설명하면 android.telephony.SmsManager sms = android.telephony.SmsManager.getDefault();sms.sendTextMessage( 상대방전번문자열, null, 보낼문자문자열, sentPI, deliverPI ); 뭐 이런식인데 ( 자세한건 "안드로이드 SMS객체" 나 위의 함수로 검색하면 예제 다 나온다 ) 안드로이드에서 문자를 전송하기 위해서는, 일종의 callback 함수를 등록해 줘야 한다. 문자 전송이 비동기( 정확하게는 Pending - Intent ) 로 이루어지다 보니, 전송 결과를 처리할 함수 - OnSMSSendSuccess(), OnSMS..

안드로이드에서 다이얼로그를 중첩해서 쓸 수 있을까? 화면 진행은 중단될까?

말 그대로다. 이거 잘 몰라서 테스트 코드로 검증해 봤는데, 다른 사람들도 아리까리 할 거 같아서 글로 남김. 상황은 이러하다. 1. Android 의 AlertDialog 를 실행하면, 사용자가 "닫기" 를 누르지 않아도, 백단( backEnd) 프로그램이 계속 돌아갈까?2. AlertDialog 를 여러개 띄울 수 있는거임? 코드는 별거없다. 그냥 테스트 수준. public void Popup( String _msg ){ AlertDialog.Builder builder = new AlertDialog.Builder( getBaseContext() ); builder.setPositiveButton( "확인", new DialogInterface.OnClickListener() {// @Overrid..

안드로이드 - @SuppressLint(“NewApi”) annotation

안드로이드 프로그램을 하다가, 이클립스에서 @SuppressLint(“NewApi”) 혹은 @SuppressLint(“Activity”) 관련 경고를 보낼 때가 있다.앞뒤를 몰라서 조금 당황했는데, 그리 어려운 게 아니라서 기록으로 남긴다. 1. "Lint" 라는 건 원래 오류 보정해 주는 툴, 라이브러리 같은거다. 주로 컴파일 타임에서 오류를 미리 예측해 사용자에게 알려주는 스타일이다. 쉽게말해 "에러날지, 경고로 끝나고 돌아가기는 할 지, 실행은 되다가 중간부터 에러날지" 는 모른다는 것. ( 사실은 알 수도 있는데, 그게 중요한 건 아니고 ) 포인트는 "오류의 가능성이 있는 코드 부분을 알려주는 툴 혹은 시스템" 정도. 2. Suppress 는 영어로 "억압하다" 정도의 뜻이다. 조합하면 감 나오지..

Android의 AndroidManifest.xml 에서 Google Play Service 관련 오류 발생 해결.

사실 이거 어려운 내용은 아닌데, 내가 개념을 몰라서 계속 삽질했다. 자세한 건 Google-Maps-Android-API-v2-사용하기 를 참고하자 안드로이드 매니페스트 파일( AndroidManifest.xml ) 에서 를 추가했는데, 아래의 "android:value="@integer/google_play_services_version" 에서 빨간줄 긋고 진행이 안 된다 치자. 우짜면 되나? 난 맨첨에 해당 구문이 value="@integer/google_play_services_version 라서, string resource 처럼 integer 로 선언된 별도의 version 값이 있어서, 그걸 RES 디렉토리에 넣거나 설정해야 되는 줄 알고 아주 개삽질을 했다. 게다가, 해당 오류를 googl..

안드로이드에서 레이아웃 추가했는데, cannot be resolved or is not a field 에러 날 때.

아는 사람은 알겠지만, Eclipse + Android 는 기본 설정이 Auto Build 다.즉, 코드 치면 실시간으로 compile 하면서 에러 잡는다. 그리고, 기본적으로 화면 구성하는 layout 은 그냥 xml 추가하면 알아서 R.java 에서 Resource 관리한다. 근데, 이게 ... "cannot be resolved or is not a field" 라고 에러를 뿜어내는 경우가 있다.보통은 이런 에러 보기도 힘든데.... 그때문에 한번 이런 에러가 나오면, 어찌 대처할 지 모른다. 해당 에러의 근본적인 원인은, 글에 써 있는대로 R.java 에서 추가한 xml 을 사용할 수 없는거다. 이하의 내용을 확인해 보자( 편의상, 추가한 xml 은 layout1.xml 이라고 하자. ) 이 경우..

안드로이드 + 이클립스에서 Android SDK 를 업뎃하라고 나오는데, 업뎃하면 에러 떨어질 때.

안드로이드 앱에 기능 추가를 하려고 했는데, 업데이트를 하다 보니, Android SDK 가 새 버전이 필요하단다.근데...보통은 Update + Install 버튼 누르면 알아서 되잖아? 근데 이번에는 계속 에러가 발생했다. 패닉.... 뭘 어찌해야 하나. 갑자기 생각나서 구글 검색 해 보니, 이전에 사용하던 구글 안드로이드 업뎃 주소가, 이제 안 쓰인다는구만. ( 뭐 에러 어쩌구 하는데, 자세한 내용은 모르겠다. 신경안씀 ) 포인트는, 글에서 시키는 대로 Eclipse > Help > Check For Update 할 때, "Contact all update sites during install to find required software." 버튼의 체크를 해제하고 업뎃하면 된다. 그럼 업뎃이 알아..

반응형