百度地圖開發 Android版應用Key申請

 

 

 

一 申請API keyjavascript

 在使用百度地圖以前,咱們必須去申請一個百度地圖的API key,申請地址http://lbsyun.baidu.com/apiconsole/key,本身自行註冊一個百度帳號,很快就能申請到的,以下圖html

建立應用java

 

 

 

Key type 選擇「for mobile」,安全碼是Android簽名證書的證書指紋 (SHA1)值 + 「;」 + 你的應用程序包名,因此當你配置好了API key 你不能隨意更換應用程序的包名, 若是更換了包名咱們須要從新配置API key,接下來咱們來介紹怎麼獲取數字簽名android

咱們知道咱們開發的Android程序是須要給他簽名的,若是沒有簽名是不容許被安裝到手機或者模擬器的,那麼你會有疑問,我日常開發的應用確實沒簽名,怎麼能在模擬器或者手機上直接運行呢,其實ADT會自動的使用debug密鑰爲應用程序簽名,固然你也能夠本身建立一個屬於你本身的密鑰,直接用Eclipse可視化建立就好了,很方便的,這裏我就不介紹了api

 

這裏咱們用debug.keystore來生成Android簽名證書的證書指紋 (SHA1)值能夠在eclipse中直接查看:winows -> preferance -> android -> build。 以下圖示安全

 

而後咱們使用keytool工具來獲取簽名證書的sha1值,在DOS輸入keytool -list -keystore C:\Users\bds\.android\debug.keystore紅色部分爲debug.keystore的路徑,接下來會要你輸入輸入密鑰庫口令,默認輸入「android」,這樣子咱們就能獲取證書指紋 (SHA1),以下圖網絡

紅色框框裏面的東西就是咱們須要的Android簽名證書的證書指紋 (SHA1)值,而後咱們複製出來,輸入到API key的安全碼輸入框裏面,再用分號隔開加上你的應用程序包名,如 XX:XX:B2:EF:94:FF:EE:CC:3C:5A:29;com.example.baidumapdemo 這樣子咱們就配置好了API keyapp

 

、下載百度地圖API庫eclipse

要在Android應用中使用百度地圖API,就須要在工程中引用百度地圖API開發包,下載地址http://developer.baidu.com/map/sdkandev-download.htm,下載Android SDK v3.1.0lib庫就好了
ide

新建Android項目 BaiduMapDemo,而後將百度地圖API庫加入工程,以下圖

 

 

  • 在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 version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >



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

</RelativeLayout>

Activity界面代碼,註釋的很詳細,相信你看得懂

 

package com.akwl.app.activity;

import java.util.List;

import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Toast;

import com.akwl.app.R;
import com.akwl.app.bean.CmsChannel;
import com.akwl.app.util.QueryResult;
import com.akwl.app.util.RCPParams;
import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.MapView;


public class RuralSceneryActivity extends AppBaseActivity implements
		OnClickListener {
	
	MapView mapView; // 百度地圖

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

		setContentView(R.layout.activity_ruralscenery);

		// 獲取地圖控件的引用
		mapView = (MapView) findViewById(R.id.bmapView);
		
		initView();
	}

	private void initView() {
		BaiduMap mBaiduMap = mapView.getMap();

		//普通地圖  
		//mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);  
		//衛星地圖  
		mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);
	}


	@Override
	protected void onDestroy() {
		super.onDestroy();
		// 在activity執行onDestroy時執行mMapView.onDestroy(),實現地圖生命週期管理
		mapView.onDestroy();
	}



	@Override
	public void onBackPressed() {
		super.onBackPressed();
		mapView.onDestroy();

		finish();
	}

}

 BMapManager是地圖的引擎類,這個必須在setContentView方法以前被實例化,咱們須要使用其方法init(String strKey,MKGeneralListener listener)來加入API key, MKGeneralListener  該接口返回網絡狀態,受權驗證等結果,咱們須要實現該接口以處理相應事件

  • MapView就是咱們的地圖控件了,MapView有和Activity同步的生命週期,例如onResume() ,onPause() ,onRestoreInstanceState(Bundle state) ,destroy()等,咱們能夠經過getController()方法獲取地圖控制器MapController,這個對象可用於控制和驅動平移和縮放等
  • MapView有兩個接口能夠註冊,分別是MKMapTouchListener(地圖點擊事件監聽器),MKMapViewListener(地圖監聽器)上面的Demo我給MapView註冊了MKMapViewListener,也簡單實現了裏面的幾個方法,接下來我會帶着你們詳細的瞭解這裏面的方法,但願你們到時候關注個人博客
相關文章
相關標籤/搜索