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();応答には、新規バージョン番号やダウンロード URL などの情報が含まれています。以下に、いくつかのパラメーターについて説明します。
downloadURL:ダウンロード URL。guideMemo:アップグレード情報。newestVersion:最新バージョン。resultStatus:アップグレードモード。202 は 1 回限りのリマインダーを示します。
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_folder");
MPUpgrade mpUpgrade = new MPUpgrade();
mpUpgrade.setDownloadPath(dir.getAbsolutePath());さらに、file_path.xml ファイルに以下の構成を追加します。
// external-files-path は getExternalFilesDir のフォルダに対応します。
// カスタムフォルダに対応する要素を使用してください。どれを選択すればよいかわからない場合は、「Adapt to File Provider」を検索してください。
<external-files-path
name="download"
path="custom_folder" />通知のカスタマイズ
MPUpgrade mMPUpgrade = new MPUpgrade();
mMPUpgrade.setShowDefaultNotification(false);// true に設定するとデフォルトのダウンロード通知が表示され、false に設定するとカスタムのダウンロード通知が使用されます。
mMPUpgrade.update(clientUpgradeRes, new UpgradeDownloadCallback() {
@Override
public void onLoadNotificationConfig(UpgradeDownloadRequest upgradeDownloadRequest) {
}
@Override
public void onPrepare(UpgradeDownloadRequest upgradeDownloadRequest) {
// カスタムダウンロード通知を作成します。
}
@Override
public void onProgress(UpgradeDownloadRequest upgradeDownloadRequest, int i) {
// 通知の進捗横棒グラフの進捗を更新します。
}
@Override
public void onCancel(UpgradeDownloadRequest upgradeDownloadRequest) {
}
@Override
public void onFinish(UpgradeDownloadRequest upgradeDownloadRequest, String s) {
}
@Override
public void onFailed(UpgradeDownloadRequest upgradeDownloadRequest, int i, String s) {
}
});
強制アップグレード後のパッケージ解析失敗の処理
一部の ROM では、強制アップグレード後にパッケージ解析の失敗が発生することがあります。この失敗は、一部の 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インスタンスを使用する必要があります。コールバックを設定するとパッケージ解析の失敗を防ぐことができますが、アップグレードコンポーネントはプロセスを自動的に終了しなくなります。そのため、ユーザーが [インストール] をタップせずにアプリケーションに戻った場合、ユーザーが強制アップグレードをバイパスするのを防ぐために、キャンセル不可のポップアップオーバーレイを表示する必要があります。