您的位置:首页 > 移动开发 > Android开发

如何用Android开发工具引用百度地图

2016-04-06 16:39 603 查看
1.首先开发者在百度地图Android SDK 的下载页面下载到最新的地图SDK

http://developer.baidu.com/map/index.php?title=androidsdk/sdkandev-download

2. 申请密钥

在使用百度地图SDK为您提供的各种LBS能力之前,您需要获取百度地图移动版的开发密钥,该密钥与您的百度账户相关联。因此,您必须先有百度帐户,才能获得开发密钥。并且,该密钥与您创建的过程名称有关,具体流程请参考如下介绍。

Key的申请地址为:http://lbsyun.baidu.com/apiconsole/key
申请的步骤:
(1)首先注册百度账号进入百度登录页面,输入账号登录

(2)进入百度页面后 点击右上角的API控制台



点击创建应用



应用类型选择 Android SDK ,然后填写数字签名和报名 即可。数字签名从哪里找到


获取安全码

安全码的组成规则为:Android签名证书的sha1值+packagename例如:

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

包名:com.baidumap.demo

Android应用获取包名packagename,根据开发工具不同,获取位置有所不同

1、使用 eclipse 开发

包名是Android应用程序本身在AndroidManifest.xml 中定义的名称,例如:



2、使用 Android studio 开发

包名需要在文件build.gradle中查询 applictionId,例如:



Android签名证书的sha1值获取方式有两种:

第一种方法:使用keytool

第1步:运行进入控制台





第2步:定位到.android文件夹下,输入cd .android



第3步:输入keytool -list -v -keystore debug.keystore,会得到三种指纹证书,选取SHA1类型的证书(密钥口令是android),例如:

其中keytool为jdk自带工具;keystorefile为Android 签名证书文件





第二种方法:在eclipse中,在adt 22中直接查看

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



其中“SHA1 fingerprint”值即为Android签名证书的sha1值


成功创建KEY

在输入安全码后,点击“确定”完成应用的配置工作,您将会得到一个创建的Key,请妥善保管您所申请的Key。到这您就可以使用新Key来完成您的开发工作了。
3.创建Android工程、导入百度地图开发包;
4.在AndroidManifest.xml中添加各种权限;

代码如下:

[html] view
plain copy

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.baidumap.basemap"

android:versionCode="1"

android:versionName="1.0" >

<uses-sdk

android:minSdkVersion="8"

android:targetSdkVersion="8" />

<supports-screens android:largeScreens="true"

android:normalScreens="true"

android:smallScreens="true"

android:resizeable="true"

android:anyDensity="true"/>

<!-- 添加屏幕支持 -->

<application

android:allowBackup="true"

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme" >

<activity

android:name="com.baidumap.basemap.MainActivity"

android:label="@string/app_name"

android:screenOrientation="sensor"

android:configChanges="orientation|keyboardHidden">

<!-- 注意添加转屏的相关设置 -->

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

</application>

<!--使用网络功能所需权限 -->

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>

<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>

<!-- SDK离线地图和cache功能需要读写外部存储器 -->

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

<!-- 获取设置信息和详情页直接拨打电话需要以下权限 -->

<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>

<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>

</manifest>

5:在布局文件中添加百度地图控件(mapview);

代码如下:

[html] view
plain copy

<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=".MainActivity" >

<!-- 放入百度地图的mapview -->

<com.baidu.mapapi.map.MapView android:id="@+id/bmapsView"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:clickable="true"/>

</RelativeLayout>

6.在主类中定义mapview对象和地图管理对象,在oncreate方法里需要首先初始化地图管理对象,然后初始化mapview对象,并且设置mapview的相应状态;

代码如下:

[java] view
plain copy

import com.baidu.mapapi.BMapManager;

import com.baidu.mapapi.map.MapController;

import com.baidu.mapapi.map.MapView;

import com.baidu.platform.comapi.basestruct.GeoPoint;

import android.os.Bundle;

import android.app.Activity;

public class MainActivity extends Activity {

BMapManager bMapManager = null; // 定义管理sdk的对象

MapView mapView = null; // 定义mapview对象

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

// 初始化管理对象,注意要在setContentView(R.layout.activity_main)之前初始化,否则会报错

bMapManager = new BMapManager(getApplication());

bMapManager.init("输入您申请的key", null);

setContentView(R.layout.activity_main);

// 初始化mapview对象,并且设置显示缩放控件

mapView = (MapView) findViewById(R.id.bmapsView);

mapView.setBuiltInZoomControls(true);

// 定义地图控件,获取mapview的控制,并把地图范围定位北京市

MapController mapController = mapView.getController();

GeoPoint point =new GeoPoint((int)(39.915* 1E6),(int)(116.404* 1E6));

mapController.setCenter(point);

mapController.setZoom(12);

}

//注意在onResume、onDestroy和onPause中控制mapview和地图管理对象的状态

@Override

protected void onResume() {

// TODO Auto-generated method stub

mapView.onResume();

if(bMapManager!=null){

bMapManager.start();

}

super.onResume();

}

@Override

protected void onDestroy() {

// TODO Auto-generated method stub

mapView.destroy();

if(bMapManager!=null){

bMapManager.destroy();

bMapManager=null;

}

super.onDestroy();

}

@Override

protected void onPause() {

// TODO Auto-generated method stub

mapView.onPause();

if(bMapManager!=null){

bMapManager.stop();

}

super.onPause();

}

}

运行程序即可调启百度地图服务,展示您所需的地图即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: