欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

AndroidStudio超级详细集成百度地图SDK

程序员文章站 2022-04-20 17:23:41
...

下载百度地图sdk

下载地址:官网*http://lbsyun.baidu.com/index.php?title=androidsdk*(以地图为例),当然还有定位,xx等各种功能。

解压及集成

AndroidStudio超级详细集成百度地图SDK
此处解压需要libs/中文件,解压结果如下(全都有用)
AndroidStudio超级详细集成百度地图SDK
然后将其像下边这样添加到app/libs即可(widows系统直接拖进去),不需要网上所说的新建**LIbs文件,此处方法是在app/gradle里边添加下边的sourcesets代码,注意添加位置如下图:
sourceSets {
main {
jniLibs.srcDirs = [‘libs’]
}
}

AndroidStudio超级详细集成百度地图SDK

AndroidStudio超级详细集成百度地图SDK
此时还没有结束,****我们需要引用刚才的BaiduBLS_Android.jarAndroidStudio超级详细集成百度地图SDK
方法:点击File/Project Structrue/Dependencies中app模块,点击添加+号,点击jar Dependency,选择libs\BaiduBLA
,如下图
AndroidStudio超级详细集成百度地图SDK
点击ok之后,你会看到app中的dependcies中出现了implementation files(‘libs\BaiduLBS_Android.jar’)
如图AndroidStudio超级详细集成百度地图SDK
注意添加此段代码:
implementation 'com.android.support:multidex:1.0.3’
此时你的工作只完成了一丁点

**##获取你现在这个app的证书,然后用来拿到SHA1值-------(—重点----)有坑-----,
**再然后用来申请API KEY才能使用百度地图功能

获取证书如下步骤
AndroidStudio超级详细集成百度地图SDK
(如果你已经注册过那就算了)没有的话注册一下,这里有很多东西乱填就可以。很多东西不用动不用填:下边给小白看:Alias:别名

confirm:确认,理解为重复输入一次密码

First and Last Name:姓名全称

certificate:证明

organizational Unit:组织单位

organizational: 公司
City or Location :地理位置(城市地点)

State or Province:省市

Country Code:国家编码
这里的密码设置“android”即可,别乱设置,不然忘了就尴尬了,
**这里要说一点,其中的release设置可以不用设置他默认目录,你就设置一个D盘的某个文件夹就可以。**我这里设置的是AndroidStudio超级详细集成百度地图SDK
这样就会在这个文件夹,用于下边写入SHA1值和MD5等值

获取SHA1值

我们使用者这种方法:
AndroidStudio超级详细集成百度地图SDK
运行sigingreport
但是此时你会生成debug版本下的SHA1值,***《一定不能用这个》***
我们需要用来注册apikey的是release版本的
所以:坑来了
我们需要在build下添加如下代码:其中storeFiel路径自己方才注册app证书的时候生成的jks,。下边是往这个文件中写入项目的值,我们用的是如下方法。添加代码,如下到app/build.gradle中
AndroidStudio超级详细集成百度地图SDK
AndroidStudio超级详细集成百度地图SDK

signingConfigs {
release {
keyAlias ‘key’
keyPassword ‘android’
storeFile file(‘D:/signedAPKfileD/mysignedapp.jks’)
storePassword ‘android’
}
}

buildTypes {
release {
//这里就是代码混淆,这里是false关闭状态
minifyEnabled false
proguardFiles getDefaultProguardFile(‘proguard-android-optimize.txt’), ‘proguard-rules.pro’

        //上边release签名文件所需
        signingConfig signingConfigs.release
    }
    debug {
        signingConfig signingConfigs.debug
    }
}

此处的代码混淆有人需要可以搜一下,这里不过多阐述,咱的事关闭状态。不太建议使用(除了大牛以外)

注意,你再次点击右侧标题栏,右侧一个小老鼠(反正我看着像老鼠,不像大象)
AndroidStudio超级详细集成百度地图SDK
AndroidStudio超级详细集成百度地图SDK

运行后会显示成功。但是,如果,注意了,大家注意了咱们不能用debug的SHA1,要找Release的,如果此处看不到SHA1值(因为你设置了生成的目录,写到了你自定义的目录中,我这里是d盘)AndroidStudio超级详细集成百度地图SDK
,怎么办?其实SHA1值就在你设置的存储路径底下,我们需要读取,网上有在terminal中输入的方法,你们可以搜一下,用到keytools -*********,此处报错找不到keytools工具,无法使用此命令其实你要知道它的原理就简单了,咱们的目的就是读取这个目录下边的.jks文件,java的jdk提供了一个keytools.exe工具,自己找一下,我的是在这里:AndroidStudio超级详细集成百度地图SDK

我们找到你的.jks文件路径,进入命令行窗口:我的是在AndroidStudio超级详细集成百度地图SDK

此目录下cmd,用网上的命令打开这个含有SHA1的文件一定打不开,因为我们没用到jdk的keytools呀。要想用就要找到他,所以我们需要这个命令
F:\ASInstall\jre\bin\keytool.exe -list -v -keystore agriculturecertificate.jks
这样才能打开它
AndroidStudio超级详细集成百度地图SDK
密码就是刚才你设置的android,此时的SHA1等信息全部在上边

获取APIKey

AndroidStudio超级详细集成百度地图SDK
首先你得注册一下这个开发者选项,然后
AndroidStudio超级详细集成百度地图SDK
选就行了,然后输入你的SHA1值。就可以了。最后获得了APIKey
拿到key就好办了,(你想想,你不能随便用别人的东西,个人用的话是免费的,所以他要绑定你的项目名称和地址,和你的apk生成的证书。至像我一样的小白听)

获取APIKEY之后添加到你的项目清单文件AndroidManifest.xml代码中

添加代码如下

    <service
        android:name="com.baidu.location.f"
        android:enabled="true"
        android:process=":remote" />
        一定在<application></application>中 如下所示

AndroidStudio超级详细集成百度地图SDK

perfect 完成了,你就可以从网上找代码测试了。

如果写代码用到地图*别忘了在manifest.xml中加入权限这里有一些拿去不谢

```java
<!-- 百度地图需要的权限 -->
    <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"
        tools:ignore="ProtectedPermissions" /> <!-- 这个权限用于进行网络定位 -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- 这个权限用于访问GPS定位 -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位 -->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 获取运营商信息,用于支持提供运营商信息相关的接口 -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位 -->
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <!-- 写入扩展存储,向扩展卡写入数据,用于写入离线定位数据 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 访问网络,网络定位需要上网 -->
    <uses-permission android:name="android.permission.INTERNET" /> <!-- 这个权限用于进行网络定位 -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- 这个权限用于访问GPS定位 -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.INTERNET" />

注意:*

有些博客说需要在build中写入ndk这里不需要。因为咱的除了jar包之外的其他文件都放到了libs中,没有新建目录所以不需要
AndroidStudio超级详细集成百度地图SDK