안녕하세요 박스여우입니다.이번에는 안드로이드 스튜디오에서 패키지명을 변경하는 방법을 알아보겠습니다. Google Play Store에 앱을 등록하려 하니 com.example 패키지 명은 허용되지 않는다고 합니다. 그래서 패키지 명을 변경해야할 필요가 있습니다. 저처럼 패키지명이 com.example로 바로 나와버리는 경우나 모든 패키지가 하나로 표시되는 경우에는 위의 톱니바퀴모양을 눌러 Comapct Empty Middle Packages 체크를 푸시면 됩니다. 그다음에 바꿀 패키지를 우클릭하여 Refactor -> Rename을 누르시면 아래처럼 창이 나오게 됩니다. 저같은 경우에는 패키지와 디렉토리 모두 이름을 변경해 주었습니다! 그리고 아래 콘솔창(?)에 뜨는 부분을 클릭해서 Build Confi..
안녕하세요 박스여우입니다.이번엔 수 많은 기기들을 구별할 수 있는 고유 식별자 UUID를 알아보겠습니다. ■ UUID - Universally unique identifier : 범용고유식별자기존에는 수 많은 디바이스들을 구별하기 위해서 IP나 MAC Address를 사용햇습니다. 하지만, 모바일 디바이스는 네트워크를 ON OFF만 해도 IP가 변경되고, 위치에 따라 수시로 바뀔 수도 있고, 여러 대의 스마트폰이 한 개의 WIFI를 통해 접속하거나 DHCP(내부 IP 자동할당)기능을 끄고 다른 기기에다 이전에 사용했던 내부 ip를 할당하게 되는등의 상황을 고려하면 ip는 절대 고유한 값을 가진다고 볼 수 없습니다. 또, Mac Address는 네트워크 카드의 고유 값이라고 하지만, 만약 wifi를 거치게..
안녕하세요 박스여우입니다.이번에는 안드로이드의 인텐트(Intent)에 대해 알아보겠습니다. ■ Intent - 인텐트인텐트는 안드로이드 OS 상에서 서로 다른 객체들 간에 자료를 전달하거나 호출해 실행하는 단위 입니다. Intent는 애플리케이션 내부와 애플리케이션 간의 메시지를 전달 할 때 사용되는 클래스 입니다. 안드로이드 기기 내의 모든 애플리케이션 컴포넌트 간의 상호작용을 할 수 있습니다. (쉽게 말하자면 인텐트를 통해 해당 애플리케이션에서 다른 애플리케이션을 실행시킨다던가, 데이터들을 주고 받을 수 있습니다.)인텐트는 명시적 인텐트(Explicit Intent)와 암시적 인텐트(Implicit Intent) 두 가지로 나눌 수 있습니다. ■ Explicit Intent - 명시적 인텐트명시적 인..
얼마전에 안드로이드 스튜디오를 업데이트 했더니 GCMService에서 Notification.setLatestEventInfo 부분에서 오류가 발생하더군요. 구글링 하여 문서를 찾아본 결과 CompleSdkVersion이 23이상일 경우 setLatestEventInfo 분이 삭제되어서 사용할 수 없게 되었다는 소식이 있었습니다. 그래서 해당 코드를 사용하지 않고 Notification Builder를 사용하여 동일한 Notification이 띄워지도록 하겠습니다. 1234567891011121314 String msg = intent.getStringExtra("msg"); try { msg = URLDecoder.decode(msg, "EUC-KR"); } catch (UnsupportedEncodi..
안녕하세요 박스여우입니다.이번에는 다른 쓰레드 상에서 UI를 다루는 방법에 대해 다루도록 하겠습니다. 앱 개발을 하던중에 네트워킹을 요구하는 작업이 필요해 별도의 쓰레드를 사용하는데, 그 쓰레드에서 UI까지 호출했더니 골치아픈 일이 벌어졌습니다.123456789101112131415161718192021222324 TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv = (TextView)findViewById(R.id.textview); new test().start(); } pri..
안녕하세요 박스여우입니다.지난번에 작업하다 만 GCM구현을 마저 해보도록 하겠습니다. 우선 push message를 전송하는 서버 프로젝트를 이클립스에서 생성하고, 위의 Json과 GCM라이브러리를 다운받아서 Build Path를 해 주세요그리고 메인 클래스를 생성한 뒤에, 아래 코드를 작성합니다. 1234567891011121314151617181920212223 String regId = "Registeration ID!"; String Text = "Test Message"; List list = new ArrayList(); //클라이언트 registeration id 리스트 list.add(regId); try { Sender sender = new Sender("API Key"); Messag..
안녕하세요 박스여우입니다.이번에는 GCM(Google Cloud Messaging)을 사용해서 안드로이드의 Push Message(푸시 알람)을 구현해 보도록 하겠습니다.이번 프로젝트는 저도 2일 동안 헤메다가 겨우 완성한 프로젝트라 조금 쉽게 소개해 드리기 위해 2번에 걸쳐서 완성해 보도록 하겠습니다. GCM을 사용하는 이유는 앱마다 독자적인 push를 구현하면 배터리 소모가 증가하고, 데이터 처리량도 많아지기 때문에 안드로이드에서 기본적으로 내장되어 있는 push 기능을 사용하는 편이 사용자들에겐 훨씬 바람직 할 것입니다. 안드로이드에 내장되어있는 push 기능을 서비스 하는 게 GCM(Google Cloud Messaging)입니다. 1 - 구조우선 구현하기에 앞서, push 메세지의 동작 과정과 ..
How to Video Recording in Android? English ver. is located in lower! 안녕하세요 박스여우입니다. 이번에는 안드로이드에서 카메라를 이용해 비디오를 촬영하는 방법에 대해 알아보겠습니다. 안드로이드에서 비디오를 촬영하는 방법은 여러가지가 있지만, 저는 그중에서 가장 대표적인 MediaRecorder를 다뤄보겠습니다. 먼저, 프로젝트를 생성하고, Manifast에 들어가서 아래 퍼미션들을 추가해 줍시다. 1 2 3 cs permission CAMERA는 Camera에 접근하기 위한 퍼미션 이고, permission RECORD_AUDIO 는 마이크를 통한 오디오 녹음 권한을 얻기위해 추가하는 것입니다. 그리고 permission WRITE_EXTERNAL_S..
안녕하세요 박스여우입니다.이번에는 안드로이드 엑티비티창의 상단바를 없에는 방법을 알아보도록 하겠습니다. 안드로이드 개발중에 때리고 싶을정도로 보기싫은 상단바를 지우는 방법! 상단바를 치우는 방법은 여러가지가 있습니다. 방법1 12345csAndroidManifest.xml에 가서 android:theme=부분을 저렇게 고치면 됩니다. 방법21requestWindowFeature(Widow.FEATURE_NO_TITLE);cs상단바를 없에고자 하는 엑티비티.java에서 onCreate함수안에 삽입하시면 됩니다.반드시 setContentView 위에 선언을 해야 작동을 합니다.setContentView가 화면을 뿌려주는 메소드인데 뿌린다음에 설정하면 작동하지가 않습니다. 방법3setTheme(android...
안녕하세요 박스여우입니다. 이번에는 안드로이드 스튜디오의 퍼미션에 대해서 알아보도록 하겠습니다. 우선 permission 이란? Google Play Store에서 앱을 다운받을때 뭔가 동의하는 창이 뜨는것은 아시죠? 바로 핸드폰의 어떤 부분을 사용하겠다고 권한을 동의받는겁니다. 이 퍼미션 코드로 그런 권한을 사용하겠다고 선언하는것입니다. ACCESS_CHECKIN_PROPERTIES 체크인데이터베이스의 속성테이블의 읽고 쓰기 권한 ACCESS_COARSE_LOCATION 코드(coarse)위치 권한(Cell-ID, WIFI) gps사용시 선언. ACCESS_FINE_LOCATION 파인위치(find location) 허용(gps) gps사용시 선언. ACCESS_LOCATION_EXTRA_COMMAND..