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メソッドを呼び出して、アップグレードを検出します。MPUpgradeはMPaaSCheckVersionServiceの呼び出しをカプセル化します。実装方法をカスタマイズすることもできます。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 を実装して needForceExit で false を返すことで、問題を解決できます。
コールバックを実装します。
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 を返すことを確認してから、このメソッドでプロセスを停止します。 } }コールバックを設定します。
MPUpgrade mpUpgrade = new MPUpgrade(); mpUpgrade.setForceExitCallback(new UpgradeForceExitCallbackImpl());同じ
MPUpgradeインスタンスを使用して、コールバックを設定するか、アップグレードをリクエストします。コールバックを設定した後、パッケージの解析の失敗を回避できますが、アップグレードコンポーネントは自動的にプロセスを終了しなくなります。したがって、ユーザーが インストール をクリックせずにアプリケーションに戻った場合は、ユーザーが強制アップグレードをバイパスできないように、取り消し不可能なポップアップカバーレイヤーを設定してください。
重要