百度地圖移動開發——(Android SDK v3.5.0)

申請密鑰 Android SDK

簡介
申請步驟

簡介

在使用百度地圖SDK爲您提供的各種LBS能力之前,您需要獲取百度地圖移動版的開發密鑰,該密鑰與您的百度賬戶相關聯。因此,您必須先有百度帳戶,才能獲得開發密鑰。並且,該密鑰與您創建的過程名稱有關,具體流程請參考如下介紹。

Key的申請地址爲:http://lbsyun.baidu.com/apiconsole/key

注意:

  1. 爲了給用戶提供更安全的服務,Android SDK自v2.1.3版本開始採用了全新的Key驗證體系。因此,當您選擇使用v2.1.3及之後版本的SDK時,需要到新的Key申請頁面進行全新Key的申請;(新舊key不可通用)

  2. 新Key機制,每個Key僅且唯一對於1個應用驗證有效,即對該Key配置環節中使用的包名匹配的應用有效。因此,多個應用【包括多個包名】需申請多個Key,或者對1個Key進行多次配置;

3.在新key機制下,若你需要在同一個工程中同時使用百度地圖、定位、導航SDK可以共用同一個key;

  1. 如果您在Android SDK開發過程中使用了LBS雲服務則需要爲該服務單獨申請一個for server類型的密鑰;
    申請步驟
    登錄百度賬號
    這裏寫圖片描述

登錄會跳轉到API控制檯服務,具體如下圖:
這裏寫圖片描述
創建應用

點擊”創建應用”,進入創建AK頁面,輸入應用名稱,將應用類型改爲:“Android SDK”:

這裏寫圖片描述

配置應用

在應用類型選爲“Android SDK”後,需要配置應用的安全碼,如下圖所示:

這裏寫圖片描述
獲取安全碼

輸入“安全碼”。安全碼的組成規則爲:Android簽名證書的sha1值+“;”+packagename(即:數字簽名+分號+包名),例如:

BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75;com.baidumap.demo

注意:中間的分號爲英文狀態下的分號!

Android簽名證書的sha1值獲取方式有兩種:

第一種方法:使用keytool

第1步:運行進入控制檯

這裏寫圖片描述

第2步:定位到.android文件夾下,輸入cd .android

這裏寫圖片描述

第3步:輸入keytool -list -v -keystore debug.keystore,會得到三種指紋證書,選取SHA1類型的證書(密鑰口令是android),例如:

其中keytool爲jdk自帶工具;keystorefile爲Android 簽名證書文件

這裏寫圖片描述

這裏寫圖片描述

第二種方法:在adt 22中直接查看

如果使用adt 22,可以在eclipse中直接查看:windows -> preferance -> android -> build。 如下圖示:

這裏寫圖片描述

其中“SHA1 fingerprint”值即爲Android簽名證書的sha1值

獲取包名

包名是Android應用程序本身在AndroidManifest.xml 中定義的名稱,例如:

這裏寫圖片描述
成功創建KEY

在輸入安全碼後,點擊“確定”完成應用的配置工作,您將會得到一個創建的Key,請妥善保管您所申請的Key。到這您就可以使用新Key來完成您的開發工作了

配置環境及發佈 Android SDK

開發工具
Eclipse工程配置方法
Android Studio工程配置方法
應用混淆

開發工具

Android開發工具很多,在這我們推薦各位開發者使用Eclipse和Android Studio作爲自己的開發工具。下面我們將分別針對Eclipse和Android Studio介紹一下地圖SDK的工程配置方法。
Eclipse工程配置方法

第一步:在工程裏新建libs文件夾,將開發包裏的baidumapapi_vX_X_X.jar拷貝到libs根目錄下,將libBaiduMapSDK_vX_X_X.so拷貝到libs\armeabi目錄下(官網demo裏已有這兩個文件,如果要集成到自己的工程裏,就需要自己添加),拷貝完成後的工程目錄如下圖所示;

這裏寫圖片描述

第二步:在工程屬性->Java Build Path->Libraries中選擇“Add External JARs”,選定baidumapapi_vX_X_X.jar,確定後返回。

通過以上兩步操作後,您就可以正常使用百度地圖SDK爲您提供的全部功能了。

注意:由於adt插件升級,若您使用Eclipse adt 22的話,需要對開發環境進行相應的設置,方法如下:

  1. 在Eclipse 中選中工程,右鍵選 Properties->Java Build Path->Order and Export 使 Android Private Libraries處於勾選狀態;

  2. Project -> clean-> clean all .
    Android Studio工程配置方法

第一步:在工程app/libs目錄下放入baidumapapi_vX_X_X.jar包,在src/main/目錄下新建jniLibs目錄,放入libBaiduMapSDK_vX_X_X_X.so如下圖所示,注意jar和so的前3位版本號必須一致,並且保證使用一次下載的文件夾中的兩個文件,不能不同功能組件的jar或so交叉使用。

第二步:導入jar包。菜單欄選擇File->Project Structor->Modules->Dependencies,點擊+號,選擇File dependency,選擇jar包導入。

通過以上兩步操作後,您就可以正常使用百度地圖SDK爲您提供的全部功能了。

Hello BaiduMap Android SDK
開發工具

Android開發工具有很多。在此,我們推薦開發者使用Eclipse作爲自己的開發工具,本套開發指南也是針對Eclipse開發環境下進行編寫的。
顯示百度地圖

百度地圖SDK爲開發者提供了便捷的顯示百度地圖數據的接口,通過以下幾步操作,即可在您的應用中使用百度地圖數據:

第一步:創建並配置工程(具體方法參見工程配置部分的介紹);

第二步:在AndroidManifest中添加開發密鑰、所需權限等信息;

(1)在application中添加開發密鑰

<application>  
    <meta-data  
        android:name="com.baidu.lbsapi.API_KEY"  
        android:value="開發者 key" />  
</application>

2)添加所需權限

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_SETTINGS" />

第三步,在佈局xml文件中添加地圖控件;

<com.baidu.mapapi.map.MapView  
    android:id="@+id/bmapView"  
    android:layout_width="fill_parent"  
    android:layout_height="fill_parent"  
    android:clickable="true" />

第四步,在應用程序創建時初始化 SDK引用的Context 全局變量:

public class MainActivity extends Activity {  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);   
        //在使用SDK各組件之前初始化context信息,傳入ApplicationContext  
        //注意該方法要再setContentView方法之前實現  
        SDKInitializer.initialize(getApplicationContext());  
        setContentView(R.layout.activity_main);  
    }  
}

注意:在SDK各功能組件使用之前都需要調用

SDKInitializer.initialize(getApplicationContext());,因此我們建議該方法放在Application的初始化方法中

第五步,創建地圖Activity,管理地圖生命週期;

public class MainActivity extends Activity {  
    MapView mMapView = null;  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);   
        //在使用SDK各組件之前初始化context信息,傳入ApplicationContext  
        //注意該方法要再setContentView方法之前實現  
        SDKInitializer.initialize(getApplicationContext());  
        setContentView(R.layout.activity_main);  
        //獲取地圖控件引用  
        mMapView = (MapView) findViewById(R.id.bmapView);  
    }  
    @Override  
    protected void onDestroy() {  
        super.onDestroy();  
        //在activity執行onDestroy時執行mMapView.onDestroy(),實現地圖生命週期管理  
        mMapView.onDestroy();  
    }  
    @Override  
    protected void onResume() {  
        super.onResume();  
        //在activity執行onResume時執行mMapView. onResume (),實現地圖生命週期管理  
        mMapView.onResume();  
        }  
    @Override  
    protected void onPause() {  
        super.onPause();  
        //在activity執行onPause時執行mMapView. onPause (),實現地圖生命週期管理  
        mMapView.onPause();  
        }  
    }

完成以上步驟後,運行程序,即可在您的應用中顯示如下地圖:

這裏寫圖片描述

以上的例子爲大家介紹瞭如何構建一個基礎的地圖頁面。

下載源碼

發佈了22 篇原創文章 · 獲贊 4 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章