すべてのプロダクト
Search
ドキュメントセンター

Mobile Platform as a Service:高度なガイド

最終更新日:Jan 17, 2025

SDK を統合した後、ホワイトリストを設定し、SDK を使用してアップグレードを検出し、ビジネス要件に基づいてユーザーにアップグレードを通知できます。

ホワイトリストの設定

ホワイトリストのユーザー ID を設定します。

MPLogger.setUserId("your whitelist ID");

新しいバージョンの検出

  • 新しいバージョンを迅速に検出し、ポップアップでユーザーに通知します。

    説明

    アップグレードのポップアップのみがすぐに表示され、強制アップグレードロジックは含まれていません。強制アップグレードが必要な場合は、カスタムアップグレードを使用して実装してください。

      MPUpgrade mMPUpgrade = new MPUpgrade();
      mMPUpgrade.fastCheckNewVersion(activity, drawable);
  • 新しいバージョンを迅速に検出し、検出結果のみを返します。

      MPUpgrade mMPUpgrade = new MPUpgrade();
      // サブスレッドで呼び出される同期メソッドです。
      int result = mMPUpgrade.fastCheckHasNewVersion();
      if (result == UpgradeConstants.HAS_NEW_VERSION) {
          // 新しいバージョンが利用可能です。
      } else if (result == UpgradeConstants.HAS_NO_NEW_VERSION) {
          // 新しいバージョンはありません。
      } else if (result == UpgradeConstants.HAS_SOME_ERROR) {
          // エラーが発生しました。
      }

アップグレードの詳細の取得

fastGetClientUpgradeRes メソッドを呼び出して、詳細情報を取得します。

MPUpgrade mMPUpgrade = new MPUpgrade();
// サブスレッドで呼び出される同期メソッドです。
ClientUpgradeRes clientUpgradeRes = mMPUpgrade.fastGetClientUpgradeRes();

返された例には、新しいバージョン番号、ダウンロードアドレスなどの情報が表示されます。パラメーターの一部には、次の意味があります。

  • downloadURL: ダウンロードアドレス

  • guideMemo: アップグレード情報

  • newestVersion: 最新バージョン番号

  • resultStatus: アップグレードモード

    • 202: 単一リマインダー

    • 204: 複数リマインダー

    • 203/206: 強制アップデート

  • fileSize: ダウンロードするファイルのサイズ

その他のカスタム検出

カスタム検出の詳細については、次の例をご参照ください。

  • MPaaSCheckCallBack インターフェースを実装して、ポップアップの表示など、アップグレード SDK によって作成されたリクエストに応答します。

      MPUpgrade mMPUpgrade = new MPUpgrade();
      mMPUpgrade.setUpgradeCallback(new MPaaSCheckVersionService.MPaaSCheckCallBack() {
           .........
      });
  • MPUpgrade.checkNewVersion メソッドを呼び出して、アップグレードを検出します。

    MPUpgradeMPaaSCheckVersionService の呼び出しをカプセル化します。実装方法をカスタマイズすることもできます。MPaaSCheckVersionService および MPaaSCheckCallBack については、詳細については、「API」をご参照ください。

インストールパッケージのダウンロードディレクトリのカスタマイズ ( 10.1.60 以降のバージョン )

構成は次のとおりです。

File dir = getApplicationContext().getExternalFilesDir("Custom directory");
MPUpgrade mpUpgrade = new MPUpgrade();
mpUpgrade.setDownloadPath(dir.getAbsolutePath());

file_path.xml ファイルに次の構成を追加します。

// external-files-path は getExternalFilesDir のディレクトリに対応します
// カスタムディレクトリに対応する要素を使用します。要素の選択方法がわからない場合は、インターネットで「Adapt FileProvider」を検索してください
<external-files-path
    name="download"
    path="custom directory" />

強制アップグレード時の SDK パッケージの解析失敗の処理

一部の ROM では、強制アップグレード後に SDK パッケージの解析に失敗する場合があります。これは、ROM がパッケージをインストールするときに、対応するアプリプロセスにアクセスする必要があるためです。ただし、アプリプロセスは強制アップグレード中に強制的に停止されます。その結果、パッケージの解析に失敗します。このようなカスタム ROM の動作はネイティブ Android プラットフォームに準拠していませんが、UpgradeForceExitCallback を実装して needForceExitfalse を返すことで、問題を解決できます。

  1. コールバックを実装します。

     public class UpgradeForceExitCallbackImpl implements UpgradeForceExitCallback {
         @Override
         public boolean needForceExit(boolean forceExitApp, MicroApplicationContext context) {
             // false が返された場合、アプリプロセスは強制的に停止されず、インストールパッケージは正常に解析されます。true が返された場合は、以下の doForceExit メソッドを呼び出してプロセスを停止する必要があります。
             return false;
         }
         @Override
         public void doForceExit(boolean forceExitApp, MicroApplicationContext context) {
             // プロセスを停止する必要がある場合は、上記の needForceExit メソッドが true を返すことを確認してから、このメソッドでプロセスを停止します。
         }
     }
  2. コールバックを設定します。

     MPUpgrade mpUpgrade = new MPUpgrade();
     mpUpgrade.setForceExitCallback(new UpgradeForceExitCallbackImpl());
      重要
      • 同じ MPUpgrade インスタンスを使用して、コールバックを設定するか、アップグレードをリクエストします。

      • コールバックを設定した後、パッケージの解析の失敗を回避できますが、アップグレードコンポーネントは自動的にプロセスを終了しなくなります。したがって、ユーザーが インストール をクリックせずにアプリケーションに戻った場合は、ユーザーが強制アップグレードをバイパスできないように、取り消し不可能なポップアップカバーレイヤーを設定してください。