一、在百度官网下载百度地图SDK
可以下载全部功能,也可以自定义下载部分功能。下载完成解压后会得到截图中的文件:
- BaiduLAB_Android.jar 文件就是包含了你需要的所有功能的jar包
arm64-v8a 等文件夹里就是针对不同手机CPU架构的so文件
http://lbsyun.baidu.com/index.php?title=androidsdk/sdkandev-download
二、将下载的文件添加到Android Studio
1、将BaiduLAB_Android.jar文件拷入module中的libs文件夹(默认)
2、在src文件夹下的的main文件夹下新建jniLibs文件夹,将以下这些文件夹拷入
三、配置Android Studio
1、加载so文件
为了让工程自动加载so文件,需说明so的路径,关联所有地图SDK的so文件,即在app文件夹下的bulid.gradle的android{}代码块中加入代码: jniLibs.srcDir 'libs' ,详细代码如下:
sourceSets {
main{
jniLibs.srcDir'libs'
jni.srcDirs = []
}
}2、往工程中添加jar文件a. 菜单栏选择 File —>Project Structure;
b. 在弹出的Project Structure 对话框中, 选择左侧列表module的app, 然后点击 Dependencies 选项卡;
c. 点击绿色的加号选择Jar dependency. 然后选择要添加的jar包即可。
完成了上面的操作后在app目录下的build.gradle文件中,会有引入的类库,如下面的代码所示。
dependencies {
implementation files('libs/BaiduLBS_Android.jar')
}
四、注册和配置百度地图SDK密匙
1、主要参照百度的官网
2、获取SHA1
a. 在Android Studio最下面找到Terminal
b. 切换到C盘,cd到Users\Administrator\.android文件夹下
c. 输入指令keytool -list -v -keystore debug.keystore
d. 输入**库口令android,这里输入是看不见的。如下图所示
这里操作就可以得到一个debug的sha1,要获取发布版本的sha1,在上面第三步时输入的debug.keystore换成自己的**。
3、将得到的密匙加入配置文件AndroidManifest.xml
a. 在application中加入:
<meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="密匙" /> <service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote"> </service>b. 加入权限配置
<!-- 这个权限用于进行网络定位--> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission> <!-- 这个权限用于访问GPS定位--> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission> <!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位--> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission> <!-- 获取运营商信息,用于支持提供运营商信息相关的接口--> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> <!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位--> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission> <!-- 用于读取手机当前的状态--> <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission> <!-- 写入扩展存储,向扩展卡写入数据,用于写入离线定位数据--> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> <!-- 访问网络,网络定位需要上网--> <uses-permission android:name="android.permission.INTERNET" /> <!-- SD卡读取权限,用户写入离线定位数据--> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" tools:ignore="ProtectedPermissions"></uses-permission>
然后就大功告成啦~