| 
                     실행환경  | 
            |
| 
                     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 | 
MapTest.zip