LJ的Blog

学海无涯苦做舟

0%

百度定位 & 地理编码检索环境配置

写在前面

第三方只要文档详细,基本的功能用起来是十分方便的(和硬件底层有关的就算了。。),但是环境配置可谓入门小白的一大噩梦,反正我刚开始学的时候,各种环境配置简直让我挠破了头。这里我会详细的记一下我集成的步骤。

1.申请秘钥

这里只列出两个关键步骤的操作:

  • 获取包名
  • 获取SHA1

获取包名非常的简单,只要在AndroidManifest中看一下package的值就可以了

包名

接下来是获取SHA1,这里简单的介绍一下,我们每次打包都会使用签名文件生成apk。而我们debug的时候看似没有这一过程,实际上Android Studio用了一个debug.keystore签名文件来打debug包。当然,这个签名文件是可以自己指定的,比如用以下的代码指定debug的签名文件:

1
2
3
4
5
signingConfigs{
debug{
storeFile file("xxx")
}
}

所以如果无论你怎么获取SHA1,都鉴权失败,那么可能就是你获取的SHA1并非签名文件的的SHA1,这一点注意一下就行了。

我们需要一个叫做keytool的工具来获取SHA1,如果你在使用的时候显示“keytool不是内部或外部命令xxxx”之类的东西,那么是因为你Java的环境变量没有配置好。可能你的Java命令可以用,但是Javac不行。javac和keytool都是在java/jdk/bin目录下的exe文件,不配也可以用,只不过要写全目录,那还是配好环境变量吧。只要你javac可以用,那么keytool也可以。

准备工作和注意点说完了,开始获取SHA1吧,cmd中输入:

1
2
cd .android
keytool -list -v -keystore debug.keystore

默认的密码是android,敲入回车即可看见SHA1
SHA1
之后根据这个去申请秘钥就好了。

申请好秘钥,将AK写入清单文件的application标签里面,我这是定位,上面的name是lbsapi,如果是地图的话,可能要额外添加一个。

1
2
3
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="your key" />

2.配置环境

我这里是集成定位,不过配置环境的步骤都差不多。

首先是下载官方提供的开发包,注意选择能满足自己需求的包,没必要一股脑的全下下来。像我就是用了定位和检索两个功能,选择这两个的开发包下载就行了。下载好将几个架构的so和jar包都放入项目中的libs文件夹下,

libs.png

鼠标右键点jar包add as library,或者自己在build.gradle中的dependencies写一行compile files(‘libs/BaiduLBS_Android.jar’),将jar包引入项目。接着比较重要的一点来了,将jniLibs指向libs目录。在android中存放so文件的目录一般是jniLibs,但是在Android Studio中我们是可以通过groovy让jniLibs指向libs的,方法就是在app的build.gradle中的android{}中添加如下代码:

1
2
3
4
5
sourceSets{
main{
jniLibs.srcDirs = ['libs']
}
}

这样,百度定位所需要的jar包和so文件就全部引入了。这里还有一点需要注意,虽然百度不需要配置。就是libs中的这几个文件夹,arm64-v8a,armeabi等等,这些指的是设备cpu的架构。对应架构的cpu会去对应的文件夹下找相应的so文件,如果没找到就会报错。百度这里支持的很好,有五个架构CPU的so文件,那如果只有一个armeabi该怎么办呢?这在开发中是经常碰到的,这个时候就需要abiFilter了,这里只给个名字,各位请自行搜索。

权限还有service的配置以及具体的使用,跟着文档来就好了,文档还是很详细的。

最后碰到问题不要慌,慢慢搜索,总是能找到答案的。