Android百度地图开发之开发第一个小应用,显示基础的地图页面

最近在根据一个PPT学习位置服务和开发一个谷歌地图的小应用,想了想,除了谷歌地图外,还有高德地图,百度地图等,何不去查找一下,在开发群里面也曾经有人搞了百度地图,最后,我直接百度一下百度地图API,找到了下面的内容,并根据百度地图提供的Android地图 SDK和里面的开发指南,写了第一个小应用,因此,写了这篇文章,其实跟里面的开发指南是一样的,大家可以去了解一下,里面有很多好玩的东西,有很多我们要学习的东西:

1.首先,我们要开发百度地图,需要百度地图的API,我们可以百度一下百度地图API,打开百度地图API的首页,如下图所示,接下来的开发百度地图的小应用就是参考这个百度地图API所做出来的!

Android百度地图开发之开发第一个小应用,显示基础的地图页面_第1张图片


2.我们先登录你的百度账号,然后点击下图的箭头指向处:

Android百度地图开发之开发第一个小应用,显示基础的地图页面_第2张图片

如果你没登录的话,就要求你登录百度账号,点击申请密钥,如果你没有注册成为百度开发者的话,要求你注册,输入注册信息之后,你就成为百度开发者了,如下图所示:

Android百度地图开发之开发第一个小应用,显示基础的地图页面_第3张图片


3.点击上图的创建应用,出现下图:

Android百度地图开发之开发第一个小应用,显示基础的地图页面_第4张图片

其中输入应用名称,然后选择应用类型为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值要如何获得呢?下面介绍如何获取sha1值。


4.第一种方法,是通过keytool来获取Android签名证书的sha1值:

第一步,运行进入控制台,打开命令行窗口:

Android百度地图开发之开发第一个小应用,显示基础的地图页面_第5张图片


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

Android百度地图开发之开发第一个小应用,显示基础的地图页面_第6张图片


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

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

Android百度地图开发之开发第一个小应用,显示基础的地图页面_第7张图片

Android百度地图开发之开发第一个小应用,显示基础的地图页面_第8张图片

这样便可以获得Android签名证书的sha1值了。


第二种方法,比较简单,直接打开我们的adt开发工具Eclipse,在eclipse中直接查看:windows -> preferance -> android -> build。 如下图示:

Android百度地图开发之开发第一个小应用,显示基础的地图页面_第9张图片

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


获取包名:

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


这样就成功的创建了key,密钥知道了,密钥key即安全码,sha1+包名,在输入安全码后,点击“确定”完成应用的配置工作,您将会得到一个创建的Key,请妥善保管您所申请的Key。到这您就可以使用新Key来完成您的开发工作了。

Android百度地图开发之开发第一个小应用,显示基础的地图页面_第10张图片



5.接下来就是开发我们第一个百度地图的应用了,首先,要去下载开发百度地图需要的Android地图 sdk,如下图所示:

Android百度地图开发之开发第一个小应用,显示基础的地图页面_第11张图片

勾选需要的功能,然后点击开发包下载,下载后解压该zip压缩包,有一个libs目录,里面是开发百度地图所需要的jar包等,如下图所示:

Android百度地图开发之开发第一个小应用,显示基础的地图页面_第12张图片

全部复制到我们项目底下的libs目录下,如下图所示:

Android百度地图开发之开发第一个小应用,显示基础的地图页面_第13张图片

然后就可以进行代码的编写了。


6,经过上面的步骤,我们可以进行代码的编写了:

(1).在AndroidManifest中添加开发密钥、所需权限等信息:

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


(2).添加所需权限:

<uses-permission android:name="android.permission.GET_ACCOUNTS" />  
<uses-permission android:name="android.permission.USE_CREDENTIALS" />  
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />  
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />  
<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.CHANGE_WIFI_STATE" />  
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />  
<uses-permission android:name="android.permission.READ_PHONE_STATE" />  
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />  
<uses-permission android:name="android.permission.BROADCAST_STICKY" />  
<uses-permission android:name="android.permission.WRITE_SETTINGS" />  
<uses-permission android:name="android.permission.READ_PHONE_STATE" />


(3).在布局xml文件中添加地图控件:

activity_main.xml文件代码如下:

<LinearLayout 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" >

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

</LinearLayout>


(4).在应用程序创建时初始化 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的初始化方法中


(5).创建地图Activity,管理地图生命周期,MainActivity.java文件代码如下:

package xg.maptest;

import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.MapView;

import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity {
	MapView mapView=null;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		//在使用SDK各组件之前初始化context信息,传入ApplicationContext  
        //注意该方法要再setContentView方法之前实现  
        SDKInitializer.initialize(getApplicationContext());  
		setContentView(R.layout.activity_main);
		 //获取地图控件引用  
        mapView = (MapView) findViewById(R.id.bmapView);  
	}

	@Override
	protected void onDestroy() {
		// TODO Auto-generated method stub
		super.onDestroy();
		//在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理  
        mapView.onDestroy(); 
	}

	@Override
	protected void onPause() {
		// TODO Auto-generated method stub
		super.onPause();
		 //在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理  
        mapView.onPause();  
	}

	@Override
	protected void onResume() {
		// TODO Auto-generated method stub
		super.onResume();
		//在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理  
        mapView.onResume(); 
	}
	
	
}

7.完成上面这些步骤之后,运行此项目,就可以在我们的应用中显示出如下的地图:

Android百度地图开发之开发第一个小应用,显示基础的地图页面_第14张图片

这样第一个百度地图应用就出来了,只显示了一个基础的地图页面。


8.以上内容仅供大家学习参考,大家可以去百度地图API首页里去学习,谢谢!



你可能感兴趣的:(android,地图,百度地图)