ArcGIS Runtime SDK for Android (バージョン 100.x) を使用して開発したアプリケーションを配布する場合に必要なライセンス認証の手順を説明します。
ArcGIS Platform のロケーションサービスを使用する場合は、アプリで API キーを設定する必要があります。API キーの詳細はAPI キーの取得を、APIキーの設定方法はアプリの作成のAPI キーを設定するをご覧ください。
開発したアプリケーションのライセンス認証のステップは以下の通りです。
ArcGIS Runtime SDK for Android には Lite、Basic、Standard の 3 つのライセンス レベルと Analysis エクステンションがあります。開発したアプリケーションが使用する機能に応じて、適切なライセンス レベルを選択してください。
各ライセンスで利用可能な機能の概要は以下の表をご参照ください。
ライセンス | 利用できる機能 |
---|---|
Lite | ・地図表示(2D/3D) ・フィーチャの表示/検索 ・フィーチャのオンライン/オフライン編集(パブリックなフィーチャ サービス) ・ルート検索/到達圏解析/最寄り施設検索 ・住所検索/リバース ジオコーディング |
Basic | ・Lite ライセンスで利用できるすべての機能 ・フィーチャのオンライン/オフライン編集(セキュアなフィーチャ サービス) ・モバイル ジオデータベースの編集 ・ArcGIS Online/Portal for ArcGIS のコンテンツの編集 |
Standard | ・Basic ライセンスで利用できるすべての機能 ・シェープファイルの表示/編集 ・GeoPackage の表示/編集 ・KML(ローカル ファイル)の表示 ・ラスター データの表示/解析 ・航海用電子海図(ENC)の表示 |
Analysis Extension | ・Standard ライセンス以上で利用可能なエクステンション ・オフラインでの到達圏解析/最寄り施設検索 |
ライセンスの詳細はESRIジャパン製品ページをご参照ください。
ライセンスの認証は次の2つの方法があります。
ライセンスキーを使用した認証
指定ユーザーによるアカウント認証
■ ArcGIS Online または ArcGIS Enterprise バージョン 10.8 以降をご利用の場合
User Type | Runtime Level |
---|---|
Viewer | Lite |
Editor / Field Worker | Basic |
Creator / GIS Professional Basic | Standard ※1 |
GIS Professional Standard / GIS Professional Advanced | Advanced ※1,2 |
※1 Standard/Advanced は ArcGIS Runtime (Android/iOS/.NET) 100.7 以降から対応しております。
※2 ArcGIS Runtime SDK for Android には Advanced ライセンスはありません。
■ ArcGIS Enterprise 10.7 以前をご利用の場合
User Type | Runtime Level |
---|---|
レベル1 または Viewer タイプ以上 | Lite |
レベル2 または Editor タイプ以上 | Basic |
ライセンスキーを使用した認証
ArcGIS Online / Portal for ArcGIS へのログインによる認証
ライセンスキーを使用した認証
ArcGIS Online / Portal for ArcGIS へのログインによる認証
ライセンスキーを使用した認証
ArcGIS Online / Portal for ArcGIS へのログインによる認証 注意:この認証は、ArcGIS Runtime 100.7 より以前のバージョンでは使用できません。また、Protal for ArcGIS をご利用の場合は、ArcGIS Enterprise 10.7 以前のバージョンでは使用できません。
ライセンスキーを使用した認証
ArcGIS Online / Portal for ArcGIS へのログインによる認証
注意:この認証は、ArcGIS Runtime 100.7 より以前のバージョンでは使用できません。また、Protal for ArcGIS をご利用の場合は、ArcGIS Enterprise 10.7 以前のバージョンでは使用できません。
以下の認証に応じた作業を行ってください。
ArcGIS Runtime Lite のライセンスキーを ArcGIS Developers のサイトから取得し、取得したライセンスキーを利用して、アプリケーションを Lite ライセンスで認証することができます。 最初に以下の手順で Lite レベルのライセンスキーを取得します。
ArcGIS Developers: ArcGIS Runtime license ページにアクセスします
表示されたライセンスキーをコピーします
次に、アプリケーションのコードにおいて ArcGIS Runtime SDK の機能が呼び出される前に、以下のコードを使用してアプリケーションにコピーしたライセンスキーを設定します。
// 取得したライセンス文字列でアプリのライセンスを設定します
ArcGISRuntimeEnvironment.setLicense("runtimelite,1000,rud#########,none,####################");
ArcGIS Runtime の配布パックを購入し、取得したライセンスキーを利用して、アプリケーションを認証することができます。
ArcGIS Runtime の配布パックの購入についてはESRIジャパンにお問合せください。ArcGIS Runtime の配布パックをご購入頂いた場合、ESRIジャパンよりライセンスキーをメールにてお送りします。
アプリケーションのコードにおいて ArcGIS Runtime SDK の機能が呼び出される前に、以下のコードを使用して配布パックのライセンスキーを設定します。
// 取得したライセンス文字列でアプリのライセンスを設定します
ArcGISRuntimeEnvironment.setLicense("runtimestandard,1000,rud#########,day-month-year,####################");
Analysis Extension ライセンスを認証する場合は以下のコードを使用します。
// 基本ライセンスとエクステンション ライセンスのリストを設定します
ArcGISRuntimeEnvironment.setLicense("runtimestandard,1000,rud#########,day-month-year,####################", Arrays.asList("runtimeanalysis,1000,rud#########,day-month-year,####################"));
アプリケーションの実行時に、アプリケーションを利用するユーザーが保有する ArcGIS Online 組織向けプランもしくは Portal for ArcGIS の指定ユーザー アカウントを使用して ArcGIS Online / Portal for ArcGIS にログインすることで、ライセンスを取得することができます。
アプリケーションのコードにおいて ArcGIS Runtime SDK の機能が呼び出される前に、ライセンスを取得・設定します。以下のコードは、指定ユーザーのユーザー名とパスワードをコードに埋め込んで認証する簡単な例です。また、プロセスの一環として、アプリがオフライン環境で最大 30日 間使用されることに備えて、ライセンス情報を保存します。
認証方法の詳細については、「License your app with a named user account(英語)」や「Security and authentication(英語)」も併せてご覧ください。
// 指定ユーザーとして ArcGIS Online または ArcGIS Portal に接続します
// 以下のコードは、トークンベースのセキュリティの使用を示していますが
// ArcGIS Online の場合、Oauth 認証の使用を検討する必要があります
UserCredential credential = new UserCredential("<ユーザー名>", "<パスワード>");
// ArcGIS Online または Portal で認証する URL を指定します
Portal portal = new Portal("https://www.arcgis.com");
portal.setCredential(credential);
// ポータルをロードし、完了したロードイベントをリッスンします
portal.loadAsync();
portal.addDoneLoadingListener(() -> {
// ポータルが正しくロードされていることを確認してください
if (portal.getLoadStatus() == LoadStatus.LOADED) {
// ポータルからライセンス情報を取得します
ListenableFuture<LicenseInfo> licenseFuture = portal.fetchLicenseInfoAsync();
// サーバーからのライセンス情報をリッスンします
licenseFuture.addDoneListener(() -> {
try {
LicenseInfo licenseInfo = licenseFuture.get();
// JSON 文字列としてライセンスを取得します
String licenseJson = licenseInfo.toJson();
// ネットワーク接続がない場合にアプリを起動するには
// ライセンス文字列をローカルに保存する必要があります。
//ライセンスを適用します
ArcGISRuntimeEnvironment.setLicense(licenseInfo);
} catch (InterruptedException e) {
// エラーコードはここで取得します
} catch (ExecutionException e) {
// エラーコードはここで取得します
}
});
}
});
注意:上記のコードスニペットは、ArcGIS Runtime 100.7 で導入された新しい fetchLicenseInfoAsync() APIを使用しています。バージョン 100.6 以前では Portal.getPortalInfo().getLicenseInfo() を使用します。
ライセンス情報をローカルストレージに保存した場合、保存したライセンス情報を使用して、オフライン環境でアプリを起動してライセンスを取得できます。ストレージからライセンスを取得し、アプリのライセンスを取得します。
// デバイスに保存されているライセンスの JSON を取得します
String storedLicense = getLicenceFromStorage();
// JSON 文字列から LicenseInfo を作成します
LicenseInfo licenseInfo = LicenseInfo.fromJson(storedLicense);
// ライセンス情報を使用してアプリのライセンスを設定します
ArcGISRuntimeEnvironment.setLicense(licenseInfo);