ガイド変更履歴HERE SDK API references
ガイド

以前のバージョンから更新する

HERE SDKを最新の状態に保つことで、最新の機能、改善点、マップデータを利用できます。最新の更新を利用するには、HERE SDKの最新のバージョンをアプリケーションに統合し、更新を公開します。Navigateをご利用のお客様向けに、このガイドでは最新の地図のバージョンに自動的に更新する方法と、必要に応じて以前の地図のバージョンにダウングレードする方法について説明します。

以下の手順でHERE SDK AARを置き換えることで、HERE SDKの最新のバージョンに更新できます。

  1. 最新のHERE SDKリリースを入手します。詳細については、「利用開始」を参照してください。
  2. HERE SDK AARファイル (*.aar) をアプリケーションのapp/libsフォルダー (アプリのbuild.gradleファイルで指定) にコピーします。
  3. Android Studio を使用している場合は、Sync ボタン ([Sync Project with Gradle Files](プロジェクトを Gradle ファイルと同期)) をクリックして HERE SDK に統合します。
  4. 必要に応じて、アプリケーションのソースコードを最新のAPI変更に適合させます。

現在のHERE SDKバージョンを取得する

SDKBuildInformationから、現在統合されているHERE SDK Androidアーカイブ (AAR) のバージョンを取得できます。

Log.d("HERE SDK version: ", SDKBuildInformation.sdkVersion().versionName);

HERE SDKのバージョンはSDKによって自動的に記録されます。

自動的に更新する (Navigateでのみ使用可能)

HERE SDKバージョンは、新しいHERE SDKリリースをアプリケーションに統合することによってのみ更新できます。

プログラムによってマップ バージョンを更新する方法を以下に示します。現在統合されている HERE SDK バージョンとは無関係に、マップ バージョンを更新できます。

マップ バージョンによって、オンラインとオフラインの両方の使用向けに取得されるデータが決まります。このデータには、地図の視覚化に関連する情報と、検索、ルート検索、ナビゲーションに使用されるデータが含まれます。取得するデータを指定するには、デフォルトの LayerConfiguration を変更します。

アプリの更新で HERE SDK の新しいバージョンが統合されると、多くの場合、新しいマップ バージョンも統合されます。ただし、マップ データは自動的に更新されません。

  • mapUpdater.getCurrentMapVersion() を呼び出して、現在使用されている地図のバージョンを確認します。
  • マップ バージョンの更新が利用可能かどうかを確認するには、mapUpdater.retrieveCatalogsUpdateInfo() を呼び出します。

各アプリケーションの起動時などに、最新のマップ バージョンに自動的に更新することはできるでしょうか。

  • これは、インストールされている地域がない場合は可能です。これがどのように行われるかをお読みください。
  • インストールされている地域がある場合は、mapUpdater.updateCatalog() を使用して更新する必要があります。詳細は「オフライン マップ」セクションを参照してください。インストールされている地域がない場合は、CatalogVersionHint を設定することで更新できます。

CatalogConfiguration を作成するときに、CatalogVersionHint を設定できます (上記も参照)。

// We want to start with the latest catalog version.
boolean ignoreCachedData = true;
CatalogVersionHint versionHint = CatalogVersionHint.latest(ignoreCachedData);

実際には、HERE SDK を初期化する起動ごとに、キャッシュに保存されたマップ データが自動的に更新されます。デフォルトでは、マップのOCM IDを設定する必要があります (カスタムマップを使用する場合以外は、上記を参照)。

String defaultOCMHRN = "hrn:here:data::olp-here:ocm";
DesiredCatalog defaultOCMCatalog = new DesiredCatalog(defaultOCMHRN, versionHint);
catalogConfigurations.add(new CatalogConfiguration(defaultOCMCatalog));

patchHrn値が設定されていない場合、地図の増分更新が無効になることに注意してください。地域をインストールしている場合は、mapUpdater.updateCatalog()を使用して更新する必要があります。「オフラインマップ」セクションを参照してください。地図の増分更新は、地域がインストールされている場合にのみ適用されます。

次のステップとして、HERE SDKを初期化し、SDKOptionsを使用してcatalogConfigurationsを設定します。

AuthenticationMode authenticationMode = AuthenticationMode.withKeySecret(accessKeyID, accessKeySecret);
SDKOptions options = new SDKOptions(authenticationMode);
options.catalogConfigurations = catalogConfigurations;

try {
    Context context = this;
    SDKNativeEngine.makeSharedInstance(context, options);
} catch (InstantiationErrorException e) {
    throw new RuntimeException("Initialization of HERE SDK failed: " + e.error.name());
}

デバイスにインストールされている地域がある場合は、キャッシュに保存されたマップデータはこのコードで更新されないことに注意してください。デバイスに存在するキャッシュに保存されたデータ (たとえば、マップ キャッシュ内のデータや、PrefetchAroundLocation または PrefetchAroundRouteOnIntervals によってキャッシュに保存されたデータなど) は、新しいマップ バージョンが利用可能になると使われなくなります。このようなデータは、LRU 方式により時間の経過ともに削除されます。つまり、キャッシュはすぐには削除されませんが、必要に応じて新しいデータが使用され、キャッシュがいっぱいになると古いデータが削除されます。そのため、これが起動時間に与える影響はまったくないか、非常に限られています。

キャッシュに保存された、HERE SDK (Navigate) などのOCMベースのマップデータを自動的に更新するには、上述のコードスニペットに示されているように、DesiredCatalog内でデフォルトのHRN値"hrn:here:data::olp-here:ocm"を使用します。

ignoreCachedDataのフラグを使用して、マップバージョンを更新しようとするときに、デバイスに存在するキャッシュデータをどのように処理するかを指定できます。false に設定すると、HERE SDK はキャッシュに保存されたマップ データがまったくなく (たとえば、最初のインストール時やキャッシュを消去した後など)、さらにインストールされたマップ データがない場合にのみ、最新バージョンを使用するように自動更新されます。これ以外の場合は、効果はありません。

以前のバージョンにダウングレードする (Navigateでのみ使用可能)

下位のマップバージョンを選択することもできます。たとえば、現在のカタログよりも古い特定のカタログバージョンで起動する場合などです。

List<CatalogConfiguration> catalogConfigurations = new ArrayList<>();
CatalogVersionHint versionHint = CatalogVersionHint.specific(57);

この後は、HERE SDK を初期化するときに、前のセクションと同じ手順を実行します。

これは、キャッシュに保存されたマップ データや保持されたマップ データ (インストールされた地域のもの) がない場合にのみ効果があることに注意してください。たとえば、次のように呼び出すことで、アプリケーションを終了する前にキャッシュを消去できます。

SDKCache.fromEngine(SDKNativeEngine.getSharedInstance()).clearCache(error -> {
    if (error != null) {
        Log.d(TAG, "clearCache failed: " + error.name());
    }
});

初めてインストールする場合はこれを行う必要はありません (マップ ビューを表示する前やルート データを取得する前にこれを行う場合)。

HERE SDK では、インストールされた Region マップ データをダウングレードしたり、自動更新したりすることは許可されていません。MapUpdaterでは、オフラインマップデータ (およびキャッシュ) を最新バージョンに更新することのみが可能です。

廃止版とベータ版

HERE SDK のチームは、一貫したインターフェースとともに柔軟性と使いやすさの両方を提供するため、利用可能な API を継続的に見直し、改善しています。

リリース全体で安定した API を確保するため、当社では廃止プロセスを遵守しています。廃止 API は、ChangeLog で廃止が発表された後、その次のメジャー リリースから数えた 2 つのメジャー バージョンでは維持されます。この期間は通常 6 ~ 9 か月です。「APIリファレンス」では、インターフェースが廃止とマークされたときに影響を受けるバージョンをいつでも確認できます。iOS、Android、Flutterのサポートされているバージョンへの更新は個別に扱われ、少なくとも1つ前のメジャーリリースの時点で、ChangeLogにて告知されています。

一部の新しいAPIや不安定になる可能性のあるAPIは、「APIリファレンス」で「ベータ」として指定されています。ベータリリースは、特に明記されている場合を除き、廃止のプロセスに従いません。ベータAPIを使用する場合は、バグが含まれている可能性があり、予期しない動作を示す可能性があることに注意してください。

HERE SDKで使用されるHEREバックエンドサービスについては、機能ライフサイクルポリシーを参照してください。

私たちはユーザーの皆様のフィードバックを大切にしており、さらなる改善のための提案に常に耳を傾けています。