今天整理下 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 安装包后,开始吧!

  1. 启动 Android Studio,选择 open an existing Android Studio project, 浏览至 tutorial example 所在目录, .../HERE-sdk/tutorial/BasicMapSolution

  2. 接着会发现一条报错 Error: Failed to resolve: :HERE-sdk:, 这个不用担心,是因为 HERE SDK 的 libraries 默认没有包含在这个工程中。

  3. BasicMapSolution 中的 app 文件夹下创建一个名为 libs 的文件夹,并将安装包中的 HERE-sdk/libs 下的 HERE-sdk.aar 复制到这里。上步遇到的问题就解决料。

  4. 检查 app/build.gradle 文件,确保如下内容已经包含:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    repositories {
    flatDir {
    dirs 'libs'
    }
    }
    dependencies {
    implementation(name:'HERE-sdk', ext:'aar')
    // Depending on your specific project configuration you may have other entries here.
    }
  5. 准备许可。每个 application 都需要一套单独的credentials。需要注意:为app申请credentials时,填写的 package name 需要和注册的bundle identifier 完全一致。就这个 sample来说, 应该使用 package name:com.here.android.tutorial 。如果在文章的开始,你已经注册了credential,那也没有关系,在 developer 网站的 project 页面中,你还可以修改哦,同时密钥会重新刷一遍,请使用最新的。

  6. 写入许可。 打开目录 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}"/>
  7. 连接设备,运行程序,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 模拟器: