百度地图SDK(一)——添加到Android Studio

一、在百度官网下载百度地图SDK

可以下载全部功能,也可以自定义下载部分功能。下载完成解压后会得到截图中的文件:
百度地图SDK(一)——添加到Android Studio

  • 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文件夹,将以下这些文件夹拷入

百度地图SDK(一)——添加到Android Studio

三、配置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,这里输入是看不见的。如下图所示

百度地图SDK(一)——添加到Android Studio

这里操作就可以得到一个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>


然后就大功告成啦~