最近项目中应用到通过接入百度地图的SDK实现定位功能,现在稍微梳理下,以便今后工作中需要的时候可以再看看。
首先我们需要申请一个百度开发者,然后申请一个key.(百度地图的开发文档有详细介绍)
1.申请密钥(需要一个百度账号)
安全码的组成规则为:Android签名证书的sha1值+packagename
sha1获取:
1,打开CMD
2 ,定位到.android文件夹下,输入cd .android
3,输入keytool -list -v -keystore debug.keystore
在百度开发者控制台将sha1和包名输进去。
成功创建KEY
2.搭建环境
1.下载百度地图的SDK
2.拷贝BaiduLBS_Android.jar文件在app目录下的libs
3.在src/main目录下新建一个jniLibs的文件夹,拷贝so文件进去
3.显示基础地图
要在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);
}
}
第五步,创建地图Activity,管理地图生命周期。
之后就可以在手机上看到基础地图了,如果能够显示地图,说明环境配置是没错的。如果你在虚拟机上想要显示地图,使用最新的TextureMapView替代之前的MapView就可以了。