试水高德LBS开放平台-HelloWord(文末小彩蛋)

本文介绍了如何试水高德LBS开放平台,详细讲解了从注册获取Key到配置AndroidManifest.xml,再到初始化定位、设置参数、获取定位结果及停止定位的步骤。同时,提到了Android Studio中修改Master Password的方法以及在cmd中进行复制粘贴操作的技巧。
摘要由CSDN通过智能技术生成

这次我们试水高德LBS开放平台,

那么,什么是LBS?

基于位置的服务,它是通过电信移动运营商的无线电通讯网络(如GSM网、CDMA网)或外部定位方式(如GPS)获取移动终端用户的位置信息,在地理信息系统平台的支持下,为用户提供相应服务的一种增值业务。

简介下高德LBS开放平台:


Android 定位SDK最新版本为V2.8.0,包含全球定位功能。
Android 定位 SDK 是一套简单的LBS服务定位接口,您可以使用这套定位API获取定位结果、逆地理编码(地址文字描述)、以及地理围栏功能。


配置工程,申请Key:

http://lbs.amap.com/,注册账号并填写开发者信息,通过SHA1和包名获取key。


Key名称按命名规范来,

规范命名会让数据统计和数据分析更准确

建议命名方式: [应用名 + 应用场景]

如:神州专车-司机端;神州专车-Demo等

Package对应你应用的包名:

打开Android 应用工程的 AndroidManifest.xml配置文件,package 属性所对应的内容为应用包名。

SHA1的查看:

获取SHA1值

首先,绝大多数App在调试时使用的签名文件(debug keystore)和最终App发布使用的签名文件(自定义的keystore)是不同的,不同签名文件的SHA1值也是不同的。下面提供几种获取SHA1值的方式:

通过Eclipse编译器获取SHA1

使用 adt 22 以上版本,可以在 eclipse 中直接查看。

Windows:依次在 eclipse 中打开 Window -> Preferances -> Android -> Build。

Mac:依次在 eclipse 中打开 Eclipse/ADT->Preferances -> Android -> Build。

在弹出的 Build 对话框中 “SHA1 fingerprint” 中的值即为 Android 签名证书的 Sha1 值,如下图所示:

SHA1 fingerprint

通过Android Studio编译器获取SHA1

第一步、打开Android Studio的Terminal工具<br/>

第二步、输入命令:keytool -v -list -keystore keystore文件路径<br/>

第三步、输入Keystore密码

SHA1 fingerprint

使用 keytool(jdk自带工具)获取SHA1

1.运行进入控制台。

控制台

2.在弹出的控制台窗口中输入 cd .android 定位到 .android 文件夹。(我的路径为:C:\Users\car\.android\debug.keystore,仅供参考;最好的方法是全局搜索)

.android 文件夹

3.继续在控制台输入命令。

debug.keystore:命令为:keytool -list -v -keystore debug.keystore

自定义的 keystore:命令为:keytool -list -v -keystore apk的keystore

如下所示:
继续在控制台输入命令

提示输入密钥库密码,编译器提供的debug keystore默认密码是 android,自定义签名文件的密码请自行填写。输入密钥后回车(如果没设置密码,可直接回车),此时可在控制台显示的信息中获取 SHA1 值,如下图所示:
Sha1 值

说明:keystore 文件为 Android 签名证书文件。


Android Studio 配置工程
1、新建一个 Empty Activity 的应用项目,您可参考  入门指南<创建工程> 章节创建一个 Android 工程。

2、将下载的定位SDK的jar包复制到libs目录下,如果有老版本定位jar包在其中,请删除。如图所示:

高德地图工程配置

添加高德 Key

为了保证高德 Android SDK 的功能正常使用,您需要申请高德 Key 并且配置到项目中。

项目的 “AndroidManifest.xml” 文件中,添加如下代码:

<application
         android:icon="@drawable/icon"
         android:label="@string/app_name" >
         <meta-data
            android:name="com.amap.api.v2.apikey"
            android:value="请输入您的用户Key"/>
            ……
</application>
然后添加联网等相应权限,见demo。

    <!--获取运营商信息,用于支持提供运营商信息相关的接口-->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <!--用于访问wifi网络信息,wifi信息会用于进行网络定位-->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <!--这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位-->
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
    
    <!-- 请求网络 -->
    <uses-permission android:name="android.permission.INTERNET" />
    
    <!-- 不是SDK需要的权限,是示例中的后台唤醒定位需要的权限 -->
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    
   
    
    <!-- 需要运行时注册的权限 -->
    <!--用于进行网络定位-->
    <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.WRITE_EXTERNAL_STORAGE" />
     <!--读取缓存数据-->
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    
    <!--用于读取手机当前的状态-->
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    
    <!-- 更改设置 -->
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />

代码混淆

在生成 apk 进行代码混淆时进行如下配置(如果报出 warning,在报出 warning 的包加入类似的语句:-dontwarn 包名)

    3D 地图
    -keep   class com.amap.api.mapcore.**{*;} 
    -keep   class com.amap.api.maps.**{*;} 
    -keep   class com.autonavi.amap.mapcore.*{*;} 

    定位
    -keep class com.amap.api.location.**{*;}
    -keep class com.amap.api.fence.**{*;}
    -keep class com.autonavi.aps.amapapi.model.**{*;}

    搜索
    -keep   class com.amap.api.services.**{*;}

    2D地图
    -keep class com.amap.api.maps2d.**{*;}
    -keep class com.amap.api.mapcore2d.**{*;}

    导航
    -keep class com.amap.api.navi.**{*;}
    -keep class com.autonavi.**{*;}


接下来是自由开发时间~

获取定位数据

获取定位数据之前,需要在 AndroidManifest.xml 文件中进行权限设置,确保定位功能可以正常使用。

第 1 步,配置AndroidManifest.xml

首先,声明Service组件

请在application标签中声明service组件,每个app拥有自己单独的定位service。

1
<service android:name= "com.amap.api.location.APSService" ></service>

然后,声明权限

Android 6.0及以上系统可以参考Android 6.0权限说明章节

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!--用于进行网络定位-->
<uses-permission android:name= "android.permission.ACCESS_COARSE_LOCATION" ></uses-permission>
<!--用于访问GPS定位-->
<uses-permission android:name= "android.permission.ACCESS_FINE_LOCATION" ></uses-permission>
<!--获取运营商信息,用于支持提供运营商信息相关的接口-->
<uses-permission android:name= "android.permission.ACCESS_NETWORK_STATE" ></uses-permission>
<!--用于访问wifi网络信息,wifi信息会用于进行网络定位-->
<uses-permission android:name= "android.permission.ACCESS_WIFI_STATE" ></uses-permission>
<!--这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位-->
<uses-permission android:name= "android.permission.CHANGE_WIFI_STATE" ></uses-permission>
<!--用于访问网络,网络定位需要上网-->
<uses-permission android:name= "android.permission.INTERNET" ></uses-permission>
<!--用于读取手机当前的状态-->
<uses-permission android:name= "android.permission.READ_PHONE_STATE" ></uses-permission>
<!--写入扩展存储,向扩展卡写入数据,用于写入缓存定位数据-->
<uses-permission android:name= "android.permission.WRITE_EXTERNAL_STORAGE" ></uses-permission>

最后,设置高德Key

在application标签中加入:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值