此篇為續 [Android] Use Google Map API v2 - Get API Key
Step 3. Create a Map project
3.1 一如往常的 Create 一個 Android APP。
3.2 修改 Manifest.xml
*在 <application> Tag 裡加入
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyBdVl-cTICSwYKrZ95SuvNw7dbMuDt1KG0"/>
裡面的
android:value 裡填 Step2 最後獲取40characters 的 APIKEY* 加入 MAP_RECEIVE Permission 。com.example.mapdemo要改成你的package name。 這個 package name 應該和你申請 key 時填入的一樣
<permission android:name="com.example.mapdemo.permission.MAPS_RECEIVE" android:protectionLevel="signature"/><uses-permission android:name="com.example.mapdemo.permission.MAPS_RECEIVE"/>
* 加入 READ_GSERVICES Permission (這個很多都教學都沒說到,記得要加)
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
*加入其它必須 Permission
<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="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
3.4 Layout and coding
* Requiring OpenGL ES version 2
因為 map v2 需使用到 OpenGL ES v2 , 所以必須在<Manifest>下加入此 feature
<uses-feature android:glEsVersion="0x00020000" android:required="true"/>
3.3 Adding Library
* Import => Existing Android code into Workspace
Google Play Service Library 放在安裝目錄裡的 Extra\google\google_play_service\libproject\
注意!! 要勾選 Copy to workspace 不然會有 class not found exception。至於為何!? 猜想是Library link 的問題。這點我還不是很清楚。
* Add Library
在 Project Properties => Android => Library (click Add button) => 選擇 google-play-service_lib
快速的測試是否 work.
在 main.xml 裡加入
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:name="com.google.android.gms.maps.MapFragment"/>
這裡有一點要注意,雖然我沒碰到,但很多人指出 如果是 API Level 8 的, 要改用
android:name="com.google.android.gms.maps.SupportMapFragment "/>
在 Activity 裡加入 (Eclipse 的 Template 已經加了)
package com.example.mapdemo;
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
到這裡基本上在 Device 上應該可以 run 了。 但在模擬器上還不可以。
Reference :
如果有時間看的話, 不錯的教學,不過裡面有些點沒提到。
Google Android Map v2-Step by Step 這個很詳細不過不知道為何沒有 add Library 那一段
沒有留言:
張貼留言