실행환경 |
|
Desktop |
조립식 |
CPU |
Intel(R) Core(TM) i7-3770 3.50GHz |
Memory |
4 GB |
OS |
Window 7 Professional 32bit |
Java |
1.7.0_51 |
Android |
SDK : 4.4.2 (KitKat), Google APIs 4.4.2 TEST : Galaxy S3 4.3(Jelly Bean) |
WebServer |
Apache Tomcat 7.0 |
DB |
MySQL 5.6.15 |
Google Maps Android API v2 (구글 맵) 사용하기 |
1. 구글맵 라이브러리 다운로드 및 프로젝트 생성하기
2. 새 프로젝트에서 구글맵 라이브러리 프로젝트 가져오기
3. 인증키 발급받기
3-1. 디버깅용
3-1-1. cmd창에서 확인하기
3-1-2. 이클립스에서 확인하기
3-2. 릴리즈용
4. 구글맵 인증키 발급받기
5. 구글맵 사용하기
1. 구글맵 라이브러리 다운로드 및 프로젝트 생성하기
1-1. Google Play services SDK 다운로드하기
Android SDK Manager - Google Play services 를 설치한다.
1-2. 구글맵 라이브러리를 가져오기.
1-2-1. Ctrl + N -> Android Project from Existing Code 를 선택한다.
1-2-2. Root Directory 에 설치한 구글맵 라이브러리 경로를 지정해준다.
SDK경로\extras\google\google_play_services\libproject\google-play-services_lib |
2. 구글맵을 사용할 새로운 프로젝트 생성하기.
2-1. 프로젝트를 생성하고, 프로젝트를 오른쪽 클린한 후 Properties(속성)를 선택한다.
2-2. 하단의 Library창에서 Add를 통해 가져온 프로젝트 추가해준다.
3. 인증키 발급받기
1. OS별로 아래 경로로 이동 OS X, Linux ~/.android 윈도우 xp C:/Documents and Settings/사용자 계정/.android 윈도우 7 C:/Users/사용자 계정/.android 2. 명령어 실행 keytool -v -list -alias androiddebugkey -keystore debug.keystore -storepass android -keypass android 혹은 -keystore 값에 경로를 함께 지정해도 된다. |
3-1-2. 이클립스에서 확인하기
Window - Preferences -> Android - Build
3-2. 릴리즈용
....
4. SHA1 지문으로 구글 키 발급받기
4-1. Google APIs console로 이동한 뒤에 프로젝트를 생성한다.
4-2. 좌측 메뉴중 APIs & auth - APIs 에서 Google Maps Android API v2 를 찾아 활성화시켜준다.
4-3. APIs & auth - Credentials 에서 Public API access의 CREATE NEW KEY를 선택하고, Android key를 선택한다.
4-4. 아래와 같은 창이 나오면 위에서 확인했던 SH1키와 같이 현재 작업중인 패키지를 넣는다.
예) [SHA1지문];[현재 작업중인 패키지 이름] AF:3B:EF:67:CE:A1:5C:7D:C2:3F:C4:99:8B:63:7F:F5:92:83:E2:11;com.example.googlemap_v2 |
4-5. 아래와 같이 키가 발급되었다.
5. 구글 맵 사용하기(code)
5-1. 매니페스트 설정하기.
5-1-1. Manifest 탭
5-1-2. Application 탭(Meta Data 2개를 추가해야 한다.)
5-1-3. Permissions 탭
1개의 permission과 7개의 user-permission을 추가한다. |
<permission android:name="com.example.maptest.permission.MAPS_RECEIVE" android:protectionLevel="signature" > </permission>
<uses-permission android:name="com.example.maptest.permission.MAPS_RECEIVE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
JAVA CODE
5-1-4. AndroidManifest.xml에서 바로 추가할 수도 있다.
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.maptest" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="19" /> <uses-feature android:glEsVersion="0x00020000" android:required="true" /> <permission android:name="com.example.maptest.permission.MAPS_RECEIVE" android:protectionLevel="signature" > </permission> <uses-permission android:name="com.example.maptest.permission.MAPS_RECEIVE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.maptest.MapTest" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="KEY" /> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> </application> </manifest>
5-2. layout에 fragment 추가하기
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MapTest" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> <fragment android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" class="com.google.android.gms.maps.SupportMapFragment"/> </RelativeLayout>
5-3. MainActivity에 FragmentActivity 상속 받기
public class MainActivity extends FragmentActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
참고자료
'대학 생활 > Android' 카테고리의 다른 글
[Android]setText()에 개행(엔터), 태그 넣기 (0) | 2014.06.10 |
---|---|
[Android] java 코드(or 액티비티)에서 string.xml 가져오기 (0) | 2014.06.10 |
[Android] 뒤로(백버튼) 두 번 종료하기 (0) | 2014.06.05 |
[Android] dialog 버튼 닫힘 막기 (Builder, AlertDialog) (0) | 2014.06.03 |