毕设题目是开发一款停车场车位导引系统的Android app,感觉第一是实现一个地图接口,能定位能搜索,第二是实现一个数据库接口,读取数据。去申Google Map API key网页一直刷不出来,一想就算申好了手机上也许还不能用呢,干脆转百度地图了。
1、 下载百度地图SDK
这里可以自己订制需要使用的功能,下载对应的jar包即可
2、 申请密钥
A、使用keytool获取MD5证书指纹:
cmd下 cdc:\Users\pppppumpkin\.android
keytool –list –keystore debug.keystore
输入密钥库默认口令:android
得到证书指纹(SHA1):xx:xx:xx……
也可以在Window->References->Android->Build中找到SHA1 fingerprint
B、创建应用
应用名,启用权限,证书指纹;包名,得到key
3、 Hello Baidu Map
A、工程配置
将下载的jar包拷贝到lib下,刷新工程看到lib中包含了新的jar包
右键工程->Properties->JavaBuild Path->Libraries中选Add External JARs,选择BaiduLBS_Android.jar
Order and Export中Android Private Libraries勾选
B、显示百度地图
AndroidManifest:application中添加
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="开发者key" />
然后在application外面添加权限
<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" />
布局xml:添加
<com.baidu.mapapi.map.MapView
android:id="@+id/bmapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true" />
MainActivity:
//在使用SDK各组件之前初始化context信息,传入ApplicationContext
SDKInitializer.initialize(getApplicationContext());
//获取地图控件引用
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();
完成以上步骤然后run as Android application,地图就显示出来了,和官网上的开发指南写的一样,非常顺利,近期再研究研究其他的功能,定位搜索什么的,趁热打铁~~