(未显示1个用户的2个中间版本) | |||
第3行: | 第3行: | ||
<div class="devguideorder"><span>1</span>第一步,打开/创建一个Android工程</div> | <div class="devguideorder"><span>1</span>第一步,打开/创建一个Android工程</div> | ||
<div class="devguidecenter">根据开发者的实际使用情况,打开一个已有Android工程,或者新建一个Android工程。 | <div class="devguidecenter">根据开发者的实际使用情况,打开一个已有Android工程,或者新建一个Android工程。 | ||
− | + | ||
这里以新建一个Android工程为例讲解。</div> | 这里以新建一个Android工程为例讲解。</div> | ||
<div class="devguideorder"><span>2</span> | <div class="devguideorder"><span>2</span> | ||
第10行: | 第10行: | ||
'''方法一:''' <br/> | '''方法一:''' <br/> | ||
下载Android定位SDK并解压,将libs中的jar和so放置到工程中相应的位置。 | 下载Android定位SDK并解压,将libs中的jar和so放置到工程中相应的位置。 | ||
− | + | ||
注意,Android定位SDK提供了多种CPU架构的so文件(jar通用,只有一个),开发者可根据实际使用需求,放置所需so到对应的工程文件夹内。 | 注意,Android定位SDK提供了多种CPU架构的so文件(jar通用,只有一个),开发者可根据实际使用需求,放置所需so到对应的工程文件夹内。 | ||
− | + | ||
下图为Android定位SDK文件结构示意图: | 下图为Android定位SDK文件结构示意图: | ||
− | + | ||
http://mapopen-pub-androidsdk.cdn.bcebos.com/location/images/buildas1.png | http://mapopen-pub-androidsdk.cdn.bcebos.com/location/images/buildas1.png | ||
− | + | ||
下图为Android定位SDK放置到Android工程中的示意图,这里仅以armeabi为例: | 下图为Android定位SDK放置到Android工程中的示意图,这里仅以armeabi为例: | ||
− | + | ||
http://mapopen-pub-androidsdk.cdn.bcebos.com/location/images/buildas2.png | http://mapopen-pub-androidsdk.cdn.bcebos.com/location/images/buildas2.png | ||
+ | |||
+ | <span style="color:#F39700;">'''注意:'''</span> | ||
− | |||
− | |||
<span style="color:#F39700;">1. 如果开发的是系统应用,除了需要在工程中配置so文件,还需要手动把对应架构的so文件拷贝到/system/lib下,如果是64位系统,则需要将64位的so文件拷贝到/sytem/lib64下。</span> | <span style="color:#F39700;">1. 如果开发的是系统应用,除了需要在工程中配置so文件,还需要手动把对应架构的so文件拷贝到/system/lib下,如果是64位系统,则需要将64位的so文件拷贝到/sytem/lib64下。</span> | ||
− | + | ||
<span style="color:#F39700;">2. 新版本的定位SDK,开发者除了要更新jar包之外,同时需要关注so文件是否有更新。如果so文件名称改变,即so文件有更新,开发者要及时替换掉老版本,否则会导致定位失败。</span></div> | <span style="color:#F39700;">2. 新版本的定位SDK,开发者除了要更新jar包之外,同时需要关注so文件是否有更新。如果so文件名称改变,即so文件有更新,开发者要及时替换掉老版本,否则会导致定位失败。</span></div> | ||
<div class="devguidecenter"> | <div class="devguidecenter"> | ||
配置build.gradle文件,注意设置sourceSets。 | 配置build.gradle文件,注意设置sourceSets。 | ||
− | + | ||
<pre class="prettyprint codestyle"> | <pre class="prettyprint codestyle"> | ||
sourceSets{ | sourceSets{ | ||
第36行: | 第36行: | ||
} | } | ||
} | } | ||
− | + | ||
dependencies { | dependencies { | ||
compile fileTree(dir: 'libs' , include: ['*.jar']) | compile fileTree(dir: 'libs' , include: ['*.jar']) | ||
第46行: | 第46行: | ||
} | } | ||
</pre> | </pre> | ||
− | + | ||
<div>'''方法二:'''</div> | <div>'''方法二:'''</div> | ||
<span style="color:#FF0000;">注意:目前Gradle中集成SDK只支持国内版本如果需要Google 渠道版本SDK 请到</span>'''[https://lbs.baidu.com/index.php?title=sdk/download&action#selected=mapsdk_basicmap,mapsdk_searchfunction,mapsdk_lbscloudsearch,mapsdk_calculationtool,mapsdk_radar 官网下载一体化包]。<br> | <span style="color:#FF0000;">注意:目前Gradle中集成SDK只支持国内版本如果需要Google 渠道版本SDK 请到</span>'''[https://lbs.baidu.com/index.php?title=sdk/download&action#selected=mapsdk_basicmap,mapsdk_searchfunction,mapsdk_lbscloudsearch,mapsdk_calculationtool,mapsdk_radar 官网下载一体化包]。<br> | ||
第59行: | 第59行: | ||
} | } | ||
} | } | ||
− | + | ||
</pre> | </pre> | ||
2、在主工程的build.gradle文件配置dependencies<br> | 2、在主工程的build.gradle文件配置dependencies<br> | ||
− | {| border="1" align="center" cellspacing="1" cellpadding="1" style="width: 620px;" | + | {| border="1" align="center" cellspacing="1" cellpadding="1" style="width: 620px;" |
− | |- | + | |- |
− | | style="width: 103px;" | SDK<br/> | + | | style="width: 103px;" | SDK<br/> |
− | | style="width: 480px;" | 引入依赖<br/> | + | | style="width: 480px;" | 引入依赖<br/> |
− | |- | + | |- |
− | | style="width: 103px;" | 地图组件<br/> | + | | style="width: 103px;" | 地图组件<br/> |
− | | style="width: 480px;" | implementation 'com.baidu.lbsyun:BaiduMapSDK_Map:7. | + | | style="width: 480px;" | implementation 'com.baidu.lbsyun:BaiduMapSDK_Map:7.5.4'<br/> |
− | |- | + | |- |
− | | style="width: 103px;" | 检索组件<br/> | + | | style="width: 103px;" | 检索组件<br/> |
− | | style="width: 480px;" | implementation 'com.baidu.lbsyun:BaiduMapSDK_Search:7.4 | + | | style="width: 480px;" | implementation 'com.baidu.lbsyun:BaiduMapSDK_Search:7.5.4'<br/> |
− | |- | + | |- |
− | | style="width: 103px;" | 工具组件<br/> | + | | style="width: 103px;" | 工具组件<br/> |
− | | style="width: 480px;" | implementation 'com.baidu.lbsyun:BaiduMapSDK_Util:7.4 | + | | style="width: 480px;" | implementation 'com.baidu.lbsyun:BaiduMapSDK_Util:7.5.4'<br/> |
− | |- | + | |- |
− | | style="width: 103px;" | 步骑行组件<br/> | + | | style="width: 103px;" | 步骑行组件<br/> |
− | | style="width: 480px;" | implementation 'com.baidu.lbsyun:BaiduMapSDK_Map-BWNavi:7.4 | + | | style="width: 480px;" | implementation 'com.baidu.lbsyun:BaiduMapSDK_Map-BWNavi:7.5.4'<br/> |
− | |- | + | |- |
− | | style="width: 103px;" | 基础定位组件<br/> | + | | style="width: 103px;" | 基础定位组件<br/> |
− | | style="width: 480px;" | implementation 'com.baidu.lbsyun:BaiduMapSDK_Location:9. | + | | style="width: 480px;" | implementation 'com.baidu.lbsyun:BaiduMapSDK_Location:9.3.7'<br/> |
− | |- | + | |- |
− | | style="width: 103px;" | 全量定位组件<br/> | + | | style="width: 103px;" | 全量定位组件<br/> |
− | | style="width: 480px;" | implementation 'com.baidu.lbsyun:BaiduMapSDK_Location_All:9. | + | | style="width: 480px;" | implementation 'com.baidu.lbsyun:BaiduMapSDK_Location_All:9.3.7'<br/> |
− | |- | + | |- |
− | | style="width: 103px;" | 驾车导航组件<br/> | + | | style="width: 103px;" | 驾车导航组件<br/> |
− | | style="width: 480px;" | implementation 'com.baidu.lbsyun:BaiduMapSDK_Map-Navi:7. | + | | style="width: 480px;" | implementation 'com.baidu.lbsyun:BaiduMapSDK_Map-Navi:7.5.4'<br/> |
− | |- | + | |- |
− | | style="width: 103px;" | 驾车导航+步骑行导航<br/> | + | | style="width: 103px;" | 驾车导航+步骑行导航<br/> |
− | | style="width: 480px;" | implementation 'com.baidu.lbsyun:BaiduMapSDK_Map-AllNavi:7.4 | + | | style="width: 480px;" | implementation 'com.baidu.lbsyun:BaiduMapSDK_Map-AllNavi:7.5.4'<br/> |
− | |- | + | |- |
− | | style="width: 103px;" | TTS组件<br/> | + | | style="width: 103px;" | TTS组件<br/> |
− | | style="width: 480px;" | implementation 'com.baidu.lbsyun:NaviTts:2. | + | | style="width: 480px;" | implementation 'com.baidu.lbsyun:NaviTts:3.2.8'<br/> |
− | |- | + | |- |
− | | style="width: 103px;" | 全景组件<br/> | + | | style="width: 103px;" | 全景组件<br/> |
− | | style="width: 480px;" | implementation 'com.baidu.lbsyun:BaiduMapSDK_Panorama:2.9.0'<br/> | + | | style="width: 480px;" | implementation 'com.baidu.lbsyun:BaiduMapSDK_Panorama:2.9.0'<br/> |
− | |} | + | |} |
3、主工程的build.gradle文件在Project目录中位置:<br> | 3、主工程的build.gradle文件在Project目录中位置:<br> | ||
https://mapopen-pub-androidsdk.cdn.bcebos.com/androidstudio/androidstudio_2.png<br/>以下是基础定位组件相关依赖的示例, 配置如下:<br/> | https://mapopen-pub-androidsdk.cdn.bcebos.com/androidstudio/androidstudio_2.png<br/>以下是基础定位组件相关依赖的示例, 配置如下:<br/> | ||
第107行: | 第107行: | ||
} | } | ||
} | } | ||
− | + | ||
dependencies { | dependencies { | ||
implementation 'com.baidu.lbsyun:BaiduMapSDK_Location:9.1.8' | implementation 'com.baidu.lbsyun:BaiduMapSDK_Location:9.1.8' | ||
} | } | ||
− | + | ||
</pre> | </pre> | ||
+ | |||
+ | <br/><span style="color:#FF0000;">注意:在gradle依赖时如果同时使用多个组件时,部分组件会产生冲突,在使用时根据自己的项目需求去组合,以下是会产生冲突的组件。</span> <br/><br/> | ||
− | |||
− | |||
{| border="1" cellspacing="1" cellpadding="1" style="width:620px;" | {| border="1" cellspacing="1" cellpadding="1" style="width:620px;" | ||
|- | |- | ||
第146行: | 第146行: | ||
<div class="devguidecenter">Android定位SDK自v4.0版本起,需要进行AK鉴权。开发者在使用SDK前,需完成AK申请,并在AndroidManifest.xml文件中,正确填写AK。 | <div class="devguidecenter">Android定位SDK自v4.0版本起,需要进行AK鉴权。开发者在使用SDK前,需完成AK申请,并在AndroidManifest.xml文件中,正确填写AK。 | ||
[http://lbsyun.baidu.com/index.php?title=android-locsdk/guide/create-project/key AK如何获取?点击这里了解详情。] | [http://lbsyun.baidu.com/index.php?title=android-locsdk/guide/create-project/key AK如何获取?点击这里了解详情。] | ||
− | + | ||
在Application标签中增加如下代码: | 在Application标签中增加如下代码: | ||
<pre class="prettyprint codestyle"> | <pre class="prettyprint codestyle"> | ||
第154行: | 第154行: | ||
</meta-data> | </meta-data> | ||
</pre> | </pre> | ||
− | + | ||
如下图所示: | 如下图所示: | ||
− | + | ||
http://mapopen-pub-androidsdk.cdn.bcebos.com/location/images/buildas4.png | http://mapopen-pub-androidsdk.cdn.bcebos.com/location/images/buildas4.png | ||
LocationClient.setKey(xxxxxx);<br/> | LocationClient.setKey(xxxxxx);<br/> | ||
可在使用该接口与AndroidManifest.xml中配置AK值两种方法中任选一样进行设置。 | 可在使用该接口与AndroidManifest.xml中配置AK值两种方法中任选一样进行设置。 | ||
− | + | ||
</div> | </div> | ||
<div class="devguideorder"><span>4</span>第四步,添加定位权限</div> | <div class="devguideorder"><span>4</span>第四步,添加定位权限</div> | ||
第167行: | 第167行: | ||
<service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote"> </service> | <service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote"> </service> | ||
</pre> | </pre> | ||
− | + | ||
除添加service组件外,使用定位SDK还需添加如下权限: | 除添加service组件外,使用定位SDK还需添加如下权限: | ||
<pre class="prettyprint codestyle"> | <pre class="prettyprint codestyle"> |
2022年12月7日 (三) 20:22的最后版本
方法一:
下载Android定位SDK并解压,将libs中的jar和so放置到工程中相应的位置。
注意,Android定位SDK提供了多种CPU架构的so文件(jar通用,只有一个),开发者可根据实际使用需求,放置所需so到对应的工程文件夹内。
下图为Android定位SDK文件结构示意图:
下图为Android定位SDK放置到Android工程中的示意图,这里仅以armeabi为例:
注意:
1. 如果开发的是系统应用,除了需要在工程中配置so文件,还需要手动把对应架构的so文件拷贝到/system/lib下,如果是64位系统,则需要将64位的so文件拷贝到/sytem/lib64下。
2. 新版本的定位SDK,开发者除了要更新jar包之外,同时需要关注so文件是否有更新。如果so文件名称改变,即so文件有更新,开发者要及时替换掉老版本,否则会导致定位失败。配置build.gradle文件,注意设置sourceSets。
sourceSets{ main{ jniLibs.srcDir 'libs' jni.srcDirs = [] //disable automatic ndk-build } } dependencies { compile fileTree(dir: 'libs' , include: ['*.jar']) androidTestCompile ('com.android.support.test.espresso: espresso-core: 2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support: appcompat-v7:25.1.0' testCompile 'junit: junit: 4.12' }
注意:目前Gradle中集成SDK只支持国内版本如果需要Google 渠道版本SDK 请到官网下载一体化包。
通过Gradle 集成sdk
1、在Project的build.gradle文件中配置repositories,添加mavenCentral仓库地址
配置如下:
allprojects { repositories { mavenCentral() } }
2、在主工程的build.gradle文件配置dependencies
SDK |
引入依赖 |
地图组件 |
implementation 'com.baidu.lbsyun:BaiduMapSDK_Map:7.5.4' |
检索组件 |
implementation 'com.baidu.lbsyun:BaiduMapSDK_Search:7.5.4' |
工具组件 |
implementation 'com.baidu.lbsyun:BaiduMapSDK_Util:7.5.4' |
步骑行组件 |
implementation 'com.baidu.lbsyun:BaiduMapSDK_Map-BWNavi:7.5.4' |
基础定位组件 |
implementation 'com.baidu.lbsyun:BaiduMapSDK_Location:9.3.7' |
全量定位组件 |
implementation 'com.baidu.lbsyun:BaiduMapSDK_Location_All:9.3.7' |
驾车导航组件 |
implementation 'com.baidu.lbsyun:BaiduMapSDK_Map-Navi:7.5.4' |
驾车导航+步骑行导航 |
implementation 'com.baidu.lbsyun:BaiduMapSDK_Map-AllNavi:7.5.4' |
TTS组件 |
implementation 'com.baidu.lbsyun:NaviTts:3.2.8' |
全景组件 |
implementation 'com.baidu.lbsyun:BaiduMapSDK_Panorama:2.9.0' |
3、主工程的build.gradle文件在Project目录中位置:
以下是基础定位组件相关依赖的示例, 配置如下:
android { defaultConfig { ndk { // 设置支持的SO库架构(开发者可以根据需要,选择一个或多个平台的so) abiFilters "armeabi", "armeabi-v7a", "arm64-v8a", "x86","x86_64" } } } dependencies { implementation 'com.baidu.lbsyun:BaiduMapSDK_Location:9.1.8' }
注意:在gradle依赖时如果同时使用多个组件时,部分组件会产生冲突,在使用时根据自己的项目需求去组合,以下是会产生冲突的组件。
组件 | 依赖 | 备注 |
基础定位组件 |
implementation 'com.baidu.lbsyun:BaiduMapSDK_Location:9.1.8' |
选其一 |
全量定位组件 |
implementation 'com.baidu.lbsyun:BaiduMapSDK_Location_All:9.1.8' | |
地图组件 |
implementation 'com.baidu.lbsyun:BaiduMapSDK_Map:7.4.0' |
这些组件中都包含了BaiduMapSDK_Map组件,根据需求选其一 |
步骑行组件 |
implementation 'com.baidu.lbsyun:BaiduMapSDK_Map-BWNavi:7.4.0' | |
驾车导航组件 |
implementation 'com.baidu.lbsyun:BaiduMapSDK_Map-Navi:7.4.0' | |
驾车导航+步骑行导航 |
implementation 'com.baidu.lbsyun:BaiduMapSDK_Map-AllNavi:7.4.0' |
在Application标签中增加如下代码:
<meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="AK" > </meta-data>
如下图所示:
LocationClient.setKey(xxxxxx);
可在使用该接口与AndroidManifest.xml中配置AK值两种方法中任选一样进行设置。
<service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote"> </service>
除添加service组件外,使用定位SDK还需添加如下权限:
<!-- 这个权限用于进行网络定位--> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission> <!-- 这个权限用于访问系统接口提供的卫星定位信息--> <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.WRITE_EXTERNAL_STORAGE"></uses-permission> <!-- 访问网络,网络定位需要上网--> <uses-permission android:name="android.permission.INTERNET"></uses-permission>