今天整理下 HERE SDK的入门攻略~
HERE mobile SDK 是HERE location Servie(HLS)产品家族中重要的一部分,支持 Android 和 iOS 两大主流系统;从功能上分为 Lite(旧版本称 Starter)和 Premium 两个license level,顾名思义,前者支持较轻量级的功能,后者具有更专业更高级的功能。具体的功能清单和版本对比,可以在点击 官网链接 查到。
HERE Developer 网站提供免费测试账号,建议大家注册一个玩一玩。每个 Freemium Plan 账号下的 Project 可以拥有 Rest API、JS API、mSDK、studio 等很多产品的测试权限。对于个人 developer 来说,我认为足矣。
Freemium Plan 福利内容
Location Services
- 250K Transactions per month
- 5K SDK Monthly Active Users
- 250 Assets per month
- Pay per additional Transactions
Studio
- 2.5GB Data transfer per month
- 5GB Database storage per month
- Pay per additional Data transfer or Database storage
Steps
获取Credentials及SDK安装包
登录 HERE Developer 账户之后,即可在自己创建的Project中生成每个产品对应的密钥/credentials。
在 SDK 密钥下方就有 SDK安装包可供下载。如下图即为 HERE mSDK (premium edition) 的示例:
检查 System Requirments
这是安装一切软件产品之前,仔细阅读官方系统要求,永远是不错的选择。
快速运行 Tutorial Example
下载后的SDK 安装包中包含了 user guild,release notes,SDK libraries, tutorial example 这几大件。 如果要快速入门,tutorial example 运行起来是必须的啦。
这里假设大家使用的开发环境都是 Android Studio, 解压缩 SDK 安装包后,开始吧!
-
启动 Android Studio,选择 open an existing Android Studio project, 浏览至 tutorial example 所在目录,
.../HERE-sdk/tutorial/BasicMapSolution
。 -
接着会发现一条报错
Error: Failed to resolve: :HERE-sdk:
, 这个不用担心,是因为 HERE SDK 的 libraries 默认没有包含在这个工程中。 -
在
BasicMapSolution
中的app
文件夹下创建一个名为libs
的文件夹,并将安装包中的HERE-sdk/libs
下的HERE-sdk.aar
复制到这里。上步遇到的问题就解决料。 -
检查
app/build.gradle
文件,确保如下内容已经包含:1
2
3
4
5
6
7
8
9repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
implementation(name:'HERE-sdk', ext:'aar')
// Depending on your specific project configuration you may have other entries here.
} -
准备许可。每个 application 都需要一套单独的credentials。需要注意:为app申请credentials时,填写的 package name 需要和注册的bundle identifier 完全一致。就这个 sample来说, 应该使用 package name:
com.here.android.tutorial
。如果在文章的开始,你已经注册了credential,那也没有关系,在 developer 网站的 project 页面中,你还可以修改哦,同时密钥会重新刷一遍,请使用最新的。
-
写入许可。 打开目录
BasicMapSolution/app/src/main/
下的AndroidManifest.xml
文件。找到三行<meta-data>
开头的语句,填写 credentials 即可。1
2
3<meta-data android:name="com.here.android.maps.appid" android:value="{YOUR_APP_ID}"/>
<meta-data android:name="com.here.android.maps.apptoken" android:value="{YOUR_APP_CODE}"/>
<meta-data android:name="com.here.android.maps.license.key" android:value="{YOUR_LICENSE_KEY}"/> -
连接设备,运行程序,Bingo !
Troubleshooting
测试过程中,不确定大家有没有遇到我曾遇到的问题?
This project uses AndroidX dependencies, but the 'android.useAndroidX' property is not enabled. Set this property to true in the gradle.properties file and retry.
解决方法:
在sample project 中的 gradle.properties
文件中,增加一句:
1 | android.useAndroidX=true |
效果图
最后上图,我手头没有 Android 设备,用了 Nexus 10 模拟器:
如果您喜欢此博客或发现它对您有用,则欢迎对此发表评论。 也欢迎您共享此博客,以便更多人可以参与。 如果博客中使用的图像侵犯了您的版权,请与作者联系以将其删除。 谢谢 !