http://lbsyun.baidu.com/java
进入百度地图开放平台,登陆百度帐号android
选择应用类型为Android SDKapi
发布版SHA1,和开发板SHA1的获取方法为:安全
找到电脑上的.android路径,通常都在C盘用户目录下,网络
有的配置Android环境变量的话可能在SDK的目录下app
而后打开Android Studio,打开Terminalide
进入到.android目录下布局
输入 keytool -list -v -keystore debug.keystoregradle
密钥库口令不用输入,直接回车ui
会显示证书指纹,里面有SHA1,直接复制就能够
输入SHA1和包名后,会自动生成安全码
而后点击提交,这样咱们就生成了一个密钥
而后在百度地图首页
接下来根据本身的项目需求来勾选相应的功能
点击开发包下载,这就是下载好的开发包
以上就是百度地图API的准备工做
————————————————————————————————————————————————————————
开发步骤:
将以前下载的BaiduLBS_AndroidSDK_Lib解压,并将里面libs目录中的两个jar包复制到
Android Studio项目下libs目录下
将libs目录下的jar包添加到库当中
点击ok
同时在build.gradle中会生成工程所依赖的对应的Jar文件说明,代码以下
dependencies{ implementation files('libs/BaiduLBS_Android.jar')files('libs/BaiduLBS_Android.jar') }
在src目录下的main目录中建立jniLibs目录
而后将百度地图SDK中的lib目录复制到刚刚建立的目录
但有时候这样工程并不会自动加载libs下的so文件,
需配置so文件的路径为该libs路径,关联全部地图SDK的so文件,
即在app文件夹下的bulid.gradle加入代码: jniLibs.srcDir 'libs' ,详细代码以下:
(在bulidTypes {} 结束后添加此段代码)
sourceSets{ main{ jniLibs.srcDir 'libs' //说明so的路径为该libs路径,关联全部地图SDK的so文件 } }
接下来在application中添加开发密钥(AK)
<application> <meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="开发者 key" /> </application>
添加所需权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> //获取设备网络状态,禁用后没法获取网络状态 <uses-permission android:name="android.permission.INTERNET"/> //网络权限,当禁用后,没法进行检索等相关业务 <uses-permission android:name="android.permission.READ_PHONE_STATE" /> //读取设备硬件信息,统计数据 <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /> //读取系统信息,包含系统版本等信息,用做统计 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> //获取设备的网络状态,鉴权所需网络代理 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> //容许sd卡写权限,需写入地图数据,禁用后没法显示地图 <uses-permission android:name="android.permission.WRITE_SETTINGS" /> //获取统计数据 <uses-permission android:name="android.permission.CAMERA" /> //使用步行AR导航,配置Camera权限
在MainActivity.java中的代码以下
private MapView mMapView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //初始化地图SDK, //须要在setContentView(R.layout.activity_main);上面 SDKInitializer.initialize(getApplicationContext()); setContentView(R.layout.activity_main); //获取地图控件引用 mMapView = findViewById(R.id.bmapView); //自4.3.0起,百度地图SDK全部接口均支持百度坐标和国测局坐标,用此方法设置您使用的坐标类型. //包括BD09LL和GCJ02两种坐标,默认是BD09LL坐标。 SDKInitializer.setCoordType(CoordType.BD09LL); } @Override protected void onResume() { super.onResume(); mMapView.onResume(); } @Override protected void onPause() { super.onPause(); mMapView.onPause(); } @Override protected void onDestroy() { super.onDestroy(); mMapView.onDestroy(); mMapView = null; }
注:最好使用真机运行