ページの先頭行へ戻る
Interstage Mobile Application Server V1.3.0 アプリケーション開発ガイド
FUJITSU Software

3.3.6.2 利用時間の制御

アプリケーションの利用可能な時間を制御します。

利用時間の制御を開始するにはAppTimeManager#initメソッドを使用します。 利用時間外であることはAppTimeDelegateインターフェースのexecuteAtInvalidTimeメソッドで通知されます。

使用例
以下の場合に、それぞれ別の処理をする使用例を示しています。
  • 利用時間の制御の開始処理で利用時間外であった場合
  • 利用時間の制御の開始処理後に利用時間外となった場合
  • 利用時間の制御の開始処理で利用不可能な日であった場合
  • 利用時間の制御の開始処理後に利用不可能な日となった場合
import com.fujitsu.imaps.plugin.appmanager.AppTimeManager;
import com.fujitsu.imaps.plugin.appmanager.AppTimeDelegate;
・
・
AppTimeManager appTimeManager = null;

private void checkTime() {
	appTimeManager = AppTimeManager.getInstance(this
			.getApplicationContext());
	new CheckTimeTask(new MyAppTimeDelegate()).execute();
}

class CheckTimeTask extends AsyncTask<String, String, String> {
	AppTimeDelegate appTimeDelegate = null;

	CheckTimeTask(AppTimeDelegate appTimeDelegate) {
		this.appTimeDelegate = appTimeDelegate;
	}

	protected String doInBackground(String... params) {
		try {
			// 利用時間の制御の開始処理
			if (appTimeManager.init(appTimeDelegate)) {
				return "OK";
			} else {
				return "OUT_OF_TIME";
			}
		} catch (Exception e) {
			return "EXCEPTION";
		}
	}

	protected void onPostExecute(String result) {
		if (result.equals("OK")) {
			// 開始処理が成功した場合の処理
		} else if (result.equals("EXCEPTION")) {
			// 開始処理で例外が発生した場合の処理
		} else if (result.equals("OUT_OF_TIME")) {
			// 開始処理で利用時間外であった処理はMyAppTimeDelegateでしているためここでは何もしない
		}
	}
}

class MyAppTimeDelegate implements AppTimeDelegate {
	public void executeAtInvalidTime(int result) {
		try {
			if (appTimeManager.isStarted()) {
				if (result == AppTimeManager.OUT_OF_TIME) {
					// 開始処理後に利用時間外となった場合の処理
				} else {
					// 開始処理後に利用不可能な日となった場合の処理
				}
			} else {
				if (result == AppTimeManager.OUT_OF_TIME) {
					// 開始処理で利用時間外であった場合の処理
				} else {
					// 開始処理で利用不可能な日であった場合の処理
				}
			}
		} catch (Exception e) {
			// 例外処理
		}
	}
}
利用時間の情報を取得します。 利用時間の制御の開始処理後に使用します。
AppTimeManager appTimeManager = AppTimeManager.getInstance(this
				.getApplicationContext());
try {
	String startTime = appTimeManager.getStartTime(); // 利用時間の開始時間を取得する場合
} catch (Exception e) {
	// 例外処理
}
利用時間の制御を終了します。 利用時間制御の開始処理後に利用時間外になる前に、終了する場合に使用します。
AppTimeManager appTimeManager = AppTimeManager.getInstance(this
				.getApplicationContext());
appTimeManager.destroy();

注意

  • クライアント設定ファイルのappmgr.strictPolicyModeの値がfalseの場合は、端末がオフラインでポリシー設定ファイルが更新されない場合や、 クライアントの時計が間違っている場合は、設定した時間外にアプリケーションが利用可能になる場合があります。 これを防止するためには、appmgr.strictPolicyModeの値をtrueにします。 詳細は、付録C クライアント設定ファイルを参照してください。