アプリケーションの配布方法(Android)

ArcGIS Runtime SDK for Android を使用して開発したアプリケーションを配布する場合に必要なライセンス認証の手順を説明します。

ライセンス認証のステップ

開発したアプリケーションのライセンス認証のステップは以下の通りです。

  1. 使用するライセンスの選択
  2. ライセンスの認証

使用するライセンスの選択

ArcGIS Runtime SDK for Android には Lite、Basic、Standard の 3 つのライセンス レベルがあります。開発したアプリケーションが使用する機能に応じて、適切なライセンス レベルを選択してください。

各ライセンスで利用可能な機能の概要は以下の表をご参照ください。

ライセンス 利用できる機能
Lite ・地図表示(2D/3D)
・フィーチャの表示/検索
・フィーチャのオンライン編集(パブリックなフィーチャ サービス)
・ルート検索/到達圏解析/最寄り施設検索
・住所検索/リバース ジオコーディング
Basic ・Lite ライセンスで利用できるすべての機能
・フィーチャのオンライン編集(セキュアなフィーチャ サービス)
・フィーチャのオフライン編集
・ArcGIS Online/Portal for ArcGIS のコンテンツの編集
Standard ・Basic ライセンスで利用できるすべての機能
・シェープファイルの表示/編集
・GeoPackage の表示/編集
・KML(ローカル ファイル)の表示
・ラスター データの表示/解析
・航海用電子海図(ENC)の表示
Analysis Extension ・Standard ライセンス以上で利用可能なエクステンション
・オフラインでの到達圏解析/最寄り施設検索

ライセンスの詳細はESRIジャパン製品ページをご参照ください。

ライセンスの認証

各ライセンス レベルで認証方法が異なります。使用するライセンス レベルのトピックをご参照ください。

Lite ライセンスの認証

アプリケーションを Lite レベルで認証するには、以下の 2 つの方法があります。

  1. ライセンスキーを使用した認証
  2. ArcGIS Online / Portal for ArcGIS へのログインによる認証
    • アプリケーションを使用するユーザーごとに ArcGIS Online 組織向けプラン/ Portal for ArcGIS の指定ユーザー アカウント(レベル1 または Viewer タイプ以上) が必要です
    • アプリケーションが少なくとも 30 日に 1 回は ArcGIS Online 組織向けプラン/ Portal for ArcGIS へログインする必要があります
    • 認証の方法は、指定ユーザー アカウントを使用した認証をご参照ください

Basic ライセンスの認証

アプリケーションを Basic レベルで認証するには、以下の 2 つの方法があります。

  1. ライセンスキーを使用した認証
  2. ArcGIS Online / Portal for ArcGIS へのログインによる認証
    • アプリケーションを使用するユーザーごとに ArcGIS Online 組織向けプラン/ Portal for ArcGIS の指定ユーザー アカウント(レベル2 または Editor タイプ以上)が必要です
    • アプリケーションが少なくとも 30 日に 1 回は ArcGIS Online 組織向けプラン/ Portal for ArcGIS へログインする必要があります
    • 認証の方法は、指定ユーザー アカウントを使用した認証をご参照ください

Standard ライセンスの認証

アプリケーションを Standard レベルで認証するには、以下の方法があります。

  1. ライセンスキーを使用した認証

Analysis Extension ライセンスの認証

アプリケーションを Analysis Extension ライセンスで認証するには、以下の方法があります。

  1. ライセンスキーを使用した認証

Lite ライセンスキーを使用した認証

ArcGIS Runtime Lite のライセンスキーを ArcGIS for Developers のサイトから取得し、取得したライセンスキーを利用して、アプリケーションを Lite ライセンスで認証することができます。 最初に以下の手順で Lite レベルのライセンスキーを取得します。

  1. ArcGIS for Developers: Licensing Your ArcGIS Runtime App ページにアクセスします(サインインを求められた場合は、ArcGIS for Developers アカウントでサインインします。アカウントの作成方法は開発者アカウントの作成をご参照ください。)

  2. [Show my ArcGIS Runtime Lite license key] をクリックします

  3. 表示されたライセンスキーをコピーします

  4. 次に、アプリケーションのコードにおいて ArcGIS Runtime SDK の機能が呼び出される前に、以下のコードを使用してアプリケーションにコピーしたライセンスキーを設定します。

    // ライセンスキーを設定して認証
    LicenseResult licenseResult = ArcGISRuntimeEnvironment.setLicense("runtimelite,1000,rud#########,day-month-year,####################");
    if(licenseResult.getLicenseStatus() == LicenseStatus.VALID){
     Log.d(TAG,"ライセンスは有効です:" + licenseResult.getLicenseStatus());
    }else{
     // TODO ライセンスが無効の場合の処理
     Log.d(TAG,"ライセンスは無効です:" + licenseResult.getLicenseStatus());
    }
    

配布パックのライセンスキーを使用した認証

ArcGIS Runtime の配布パックを購入し、取得したライセンスキーを利用して、アプリケーションを認証することができます。

ArcGIS Runtime の配布パックの購入については ESRIジャパンにお問合せください。ArcGIS Runtime の配布パックをご購入頂いた場合、ESRIジャパンよりライセンスキーをメールにてお送りします。

アプリケーションのコードにおいて ArcGIS Runtime SDK の機能が呼び出される前に、以下のコードを使用して配布パックのライセンスキーを設定します。

 // ライセンスキーを設定して認証:runtimebasic/runtimestandard/runtimeadvanced
 LicenseResult licenseResult = ArcGISRuntimeEnvironment.setLicense("runtimebasic,1000,rud#########,day-month-year,####################");
if(licenseResult.getLicenseStatus() == LicenseStatus.VALID){
    Log.d(TAG,"ライセンスは有効です:" + licenseResult.getLicenseStatus());
}else{
    // TODO ライセンスが無効の場合の処理
    Log.d(TAG,"ライセンスは無効です:" + licenseResult.getLicenseStatus());
}

Analysis Extension ライセンスを認証する場合は以下のコードを使用します。

 // ライセンスキーを設定して認証
 LicenseResult extLicenseResult = ArcGISRuntimeEnvironment.setLicense("runtimestandard,1000,rud#########,day-month-year,####################",
        Arrays.asList("runtimeanalysis,1000,rud#########,day-month-year,####################", "another license extension code"));
if(extLicenseResult.getLicenseStatus() == LicenseStatus.VALID){
    Log.d(TAG,"ライセンスは有効です:" + extLicenseResult.getLicenseStatus());
}else{
    // TODO ライセンスが無効の場合の処理
    Log.d(TAG,"ライセンスは無効です:" + extLicenseResult.getLicenseStatus());
}

指定ユーザー アカウントを使用した認証

アプリケーションの実行時に、アプリケーションを利用するユーザーが保有する ArcGIS Online 組織向けプラン もしくは Portal for ArcGIS の指定ユーザー アカウントを使用して ArcGIS Online / Portal for ArcGIS にログインすることで、ライセンスを取得することができます。

アプリケーションのコードにおいて ArcGIS Runtime SDK の機能が呼び出される前に、以下のコードを使用してライセンスを取得します。

// ユーザー アカウント情報で ArcGIS Online / ArcGISポータルへログインし認証情報を取得します
// ログインのための入力フォームが表示されます。
DefaultAuthenticationChallengeHandler handler = new DefaultAuthenticationChallengeHandler(this);
AuthenticationManager.setAuthenticationChallengeHandler(handler);

//ArcGIS Online またはご自分の portal の URL を設定します
final Portal portal = new Portal("https://www.arcgis.com",true);

// ポータルの情報を同期してロードします。
portal.loadAsync();
portal.addDoneLoadingListener(new Runnable() {
    @Override
    public void run() {
        if (portal.getLoadStatus() == LoadStatus.LOADED) {

            // ポータルからライセンス情報を取得します
            LicenseInfo licenseInfo = portal.getPortalInfo().getLicenseInfo();

            // 取得したライセンスを設定します
            LicenseResult licenseResult = ArcGISRuntimeEnvironment.setLicense(licenseInfo);

            if(licenseResult.getLicenseStatus() == LicenseStatus.VALID){
                Log.d(TAG,"ライセンスは有効です:" + licenseResult.getLicenseStatus());
            }else{
                // TODO ライセンスが無効の場合の処理
                Log.d(TAG,"ライセンスは無効です:" + licenseResult.getLicenseStatus());
            }
        }
    }
});

アプリケーションが ArcGIS Online / Portal for ArcGIS に常にログインできない場合

配布するアプリケーションがネットワークに接続できない環境で実行するなどの理由により、起動時に毎回 ArcGIS Online / Portal for ArcGIS にログインすることができない場合は、取得したライセンス情報を最大 30 日までローカルに保存しておくことができます。

この方法を使用する場合、少なくとも 30 日に 1 回はアプリケーションから ArcGIS Online / Portal for ArcGIS にログインし、ローカルのライセンス情報を更新する必要があります。最後にログインしてから 30 日以上経過した場合は、ライセンスが無効となり該当するライセンスを必要とする機能が使用できなくなります。

  // ネットワーク接続可能時に Json 形式でライセンス情報を取得します。
  LicenseInfo licenseInfo = portal.getPortalInfo().getLicenseInfo();
  String licenseInfoJson = licenseInfo.toJson();

  // オフライン状態の場合は、作成済みの文字列で保存したライセンス情報を取得します。
  LicenseInfo licenseInfo = new LicenseInfo(licenseInfoJson);

  // 作成したライセンス情報を設定します。
  ArcGISRuntimeEnvironment.setLicense(licenseInfo);