Android/구글맵 v2 | Posted by 덩치 2013. 12. 27. 16:38

구글맵(GoogleMap) v2 띄우기 (최신)

펌 OK (출처 표시), 상업적 이용 NO, 컨텐츠 변경 NO

작성일에 직접 만들어가면서 포스팅한것이기 때문에,

작성일 기준으로 가장 최신 자료입니다.


1. 맵 표시를 위해 SDK Manager를 이용해 Google Play Service 최신버전 업데이트 


작은 빨간네모안의 SDK Manager를 누르면 Android SDK Manager 창이 위와같이 뜬다.

휠을 내려서 Extras 를 찾아서 하위의 Google Play services 를 체크하고 Install packages... 를 누른다

(필자는 이미 최신버전이라 단추가 비활성화상태)


이까지 마친 뒤 SDK 폴더로 이동 한 다음,

sdk/extras/google/google_play_services/libproject/google-play-services_lib 파일을 import해 준다.

밑의 사진을 보고 따라한다.







이 그림은 필자와 약~간 다를건데 필자는 이미 라이브러리를 import 해놨기때문에 위와같이 나온다. 상관하지않는다.




그럼 이렇게 프로젝트가 생성되고,


생성된 프로젝트를 우클릭 > Properties 한 다음 설정을 위와 같이 맞춘다.

Build Target은 꼭 2.3.3 이 아니라도 상관 없다. (보다 낮은것은 추천하지 않는다.)



그리고 이제 지도를 띄울 프로젝트를 만들어 보겠다.


File > New > Android Application Project 순서로 실행 

(Android Application Project 가 없는사람은 당황하지 말고 Other... > Android > Android Activity 순으로 실행한다.



Next 한 다음 대충 다음 다음 Finish 해 주면 프로젝트 생성 완료.



만들어진 프로젝트에 우클릭 > Properties 을 해 주고,





Android 클릭, Add.. 클릭 , google-play-services_lib 클릭 후 ok > ok 해 준다.

아까와는 달리 Is Library는 체크하지 않는다.


이까지 했다면 이제 맵을 띄울 바탕은 끝났다. 본격적으로 맵을 띄워보자.



2. 구글맵 API Console 등록

우선 구글계정이 필수, 로그인 하였다면

https://code.google.com/apis/console로 접속한다.


보는바와 같이 APIs & auth의 APIs 카테고리에서

구글맵 서비스를 이용하기 위해 Google Maps Android API v2 를 OFF > ON 으로 바꿔준다. 필수



3. API Key 발급

맵을 띄우기 위해서는 자신만의 고유한 API Key를 발급받아야한다.


이를 발급받기 위해서는 컴퓨터의 디버그용 키스토어를 발급받아야하는데, 간단히 설명하자면

개발을 할 때는 디버그 키스토어라는것을 이용해 어플에 서명(자신을 각인)하여 개발하고,

상용할 때는 배포용 디버그 키스토어를 이용해 어플에 서명을 하고 배포해야 사용이 가능하다.

여기서는 디버그 키스토어를 사용하는데, 잘 이해가 안간다면 깊히 생각하지 않아도 된다.


시작 > 실행 > cmd 를 이용해 명령프롬프트창을 띄운다(단축키  윈도우키 + R 후 cmd 엔터)

디버그용 키스토어가 저장되는 위치로 이동하기 위해 본인의 운영체제에 따라 다음과 같이 입력한다. 

Windows XP : C:\Documents And Settings\사용자 계정\.android

Windows Vista/7 : C:\Users\사용자 계정\.android

OSX/Linux : ~/.android


필자는 윈7에 사용자계정은 fureun 이므로




엔터를 치면 경로가 이동하게 되고, 그 다음 위 사진과 같이

keytool -list -v -keystore debug.keystore -alias androiddebugkey -storepass android -keypass android

이렇게 입력후 엔터를 치면


이렇게 나오는데, 여기서 맵을 띄우기 위해 필요한것은 SHA1: 뒤의 16진수이다.

창을 닫기 전에 따로 메모장등에 적어서 보관해놓는다.


그리고 아까 API Console로 돌아가서



누르면 창이하나 뜨는데 Android를 선택 하고,


위와같이 입력한 뒤 Create Client ID 를 누른다.

큰 네모에는 아까 명령프롬프트에서 추출한 SHA1값;패키지명


드디어 API key가 나왔다.


위의 키값을 따로 저장한 뒤, 다시 프로젝트로 돌아가보겠다.


매니패스트를 켠 뒤 AndroidManifest.xml 에서

다음과 같이 빨간네모부분을 추가한다






맨밑의 android:value= 에는 조금전 발급받은 Api key를 입력하면 된다.

따라치기 귀찮으면 밑의 글 복붙


    <uses-feature

        android:glEsVersion="0x00020000"

        android:required="true" />

    

    <permission

        android:name="com.example.SearchMJ.permission.MAPS_RECEIVE"

        android:protectionLevel="signature" >

    </permission>


    <uses-permission android:name="android.permission.INTERNET" />

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />

-------------------------------------------------

<meta-data

            android:name="com.google.android.maps.v2.API_KEY"

            android:value="Api key" />

<meta-data

            android:name="com.google.android.gms.version"

            android:value="@integer/google_play_services_version" />


그리고 메인액티비티의 레이아웃(res > layout > activity_main.xml)으로 이동해서


입력. 소스는

    <fragment

   android:id="@+id/map"

   android:name="com.example.GoogleMapVersion2.Fragment"

   android:layout_width="fill_parent"

   android:layout_height="fill_parent"

   class="com.google.android.gms.maps.SupportMapFragment" />




다음과 같이 MainActivity extends ActivityFragmentActivity 로 바꿔준다

그리고 실행 하면



짜잔 ~ 하고 맵이 나타난다.

최초 시작 위치나 카메라 줌 레벨 등은 동일 카테고리 내의 다른 포스팅을 참조하기 바란다.



혹시 에러사항이 있거나 문의사항이 있다면 댓글 남기면 친절히 답변 달아드리겠음

한참걸렸네 ..



Android/만들어보세요. | Posted by 덩치 2013. 12. 26. 15:03

과제 - 3. wifi 매니저

펌 OK (출처 표시), 상업적 이용 NO, 컨텐츠 변경 NO

(이 글은 초보자를 위한 학습용 과제입니다.)

근처 wifi 목록과 보안종류, 세기를 보여주는 어플


구성은 텍스트뷰와 버튼만 있으면 됨.


1. "체크" 버튼을 누르면 wifi 검색을 시작하고, 텍스트뷰에 와이파이의 SSID(이름), RSSI(파워), NetworkId(보안종류)를 출력한다.

내용은 이게 다임.


필요한 기술은

WifiManager와 WifiInfo가 핵심.


wifi를 다루기 위한 기본적인 내용은 이 과제를 만들다보면 다 익힐 수 있다.

응용한다면 보안설정이 안돼있는 와이파이에 자동으로 연결, 또는 연결해제 해줄 수 있겠다.


궁금한점은 댓글로 문의 또는 Wifi 카테고리의 글이나 Exam 카테고리의 wifi 관련 예제를 참고하면 된다.

Android/만들어보세요. | Posted by 덩치 2013. 12. 26. 14:34

과제 - 2. 스탑워치

펌 OK (출처 표시), 상업적 이용 NO, 컨텐츠 변경 NO


(이 글은 초보자를 위한 학습용 과제입니다.)

간단한 스탑워치를 만들어봅시다


레이아웃 구성은 화면 중앙에 시간이 표시되는 텍스트뷰 (24시간 00:00:00 형식으로 초단위까지 표시)

하단에 버튼으로 정지,일시정지,시작 버튼 배치


1. 시작 버튼을 누르면 1초단위로 증가하고, 분, 시단위로 넘어가게 구현

2. 일시정지를 누르면 해당 시간에서 일시정지. 시작버튼을 누르면 다시 카운트 업

3. 정지를 누르면 시간 초기화.

4. 어플을 종료했다가 다시실행시키면 종료했던 시점의 시간이 다시 표시되도록 설정


간단한 유틸어플입니다. 타마고에서 사용했던 기능중 대부분이 이어지는 형태

시간을 표현하기 위한 컨트롤이 제법 까다로울 수 있음


조금 응용한다면 증가가 아닌 감소기능도 구현하는걸로


질문사항은 댓글주세요