NTT DOCOMO and Hitachi Kokusai Electric Know-how & Confidential

com.docomo_um.io
クラス ApplicationInstallManager

java.lang.Object
  上位を拡張 com.docomo_um.io.FFSAccessManager
      上位を拡張 com.docomo_um.io.ApplicationInstallManager

public class ApplicationInstallManager
extends FFSAccessManager

アプリケーションインストール管理クラスです。

インストールする手順は次の通りです。
なお、インストールとはダウンロード領域からアプリケーション格納エリアへバイナリを移動させることを指します。
用語定義については、com.docomo_um.ioパッケージ説明を参照してください。
①出力ストリームを使いダウンロード領域へバイナリを書き込みます。
②updateApplicationAreaメソッドによって、ダウンロード領域のバイナリをアプリケーション格納エリアへインストールします。

ソースコード例は以下になります。

 ApplicationInstallManager appInsManager = ApplicationInstallManager.getInstance();
 OutputStream fos = appInsManager.openOutputStream(appInsManager.getFileList().get(0), false);
 byte[] capData = new byte[1024];

 try {
  // 変数capDataはbyteの配列で宣言されており、CAPデータが格納されています。
  fos.write(capData);
  fos.flush();
 } catch (IOException e) {
 } finally {
     try {
         fos.close();
     } catch(IOException e) {
     }
 }

 //ダウンロード領域に保存したアプリケーションをインストール
 appInsManager.updateApplicationArea(appInsManager.getApplicationAreaList().get(0));
 


メソッドの概要
 java.util.List<FFSFile> getApplicationAreaList()
          アプリケーション格納エリアのリストを取得します。
 java.util.List<FFSFile> getFileList()
          ダウンロード領域のリストを取得します。
static ApplicationInstallManager getInstance()
          アプリケーションインストール管理クラスのインスタンスを生成します。
 int getRemainSize()
          ダウンロード領域の空きメモリサイズ(byte)を取得します。
 java.io.InputStream openInputStream(FFSFile ffsFile)
          入力ストリームを取得します。
 java.io.OutputStream openOutputStream(FFSFile ffsFile, boolean append)
          出力ストリームを取得します。
 void updateApplicationArea(FFSFile ffsFile)
          ダウンロード領域に保存したアプリケーションをインストールします。
 
クラス java.lang.Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait
 

メソッドの詳細

getInstance

public static ApplicationInstallManager getInstance()
アプリケーションインストール管理クラスのインスタンスを生成します。

このメソッドを複数回呼び出した場合には、同一インスタンスを返します。

戻り値:
アプリケーションインストール管理クラスのインスタンスを返します。

openOutputStream

public java.io.OutputStream openOutputStream(FFSFile ffsFile,
                                             boolean append)
                                      throws java.io.IOException
出力ストリームを取得します。

オーバーライド:
クラス FFSAccessManager 内の openOutputStream
パラメータ:
ffsFile - FFSファイルクラスインスタンスを指定します。
append - trueの場合はファイルの最後尾に書き込み、falseの場合はファイルの初期化後、先頭から書き込みます。
戻り値:
出力ストリームを返します。
例外:
java.lang.NullPointerException - ffsFileがnullの場合に発生します。
java.lang.IllegalArgumentException - ダウンロード領域以外(アプリケーション格納エリアや通常のFFSファイル)が指定された場合に発生します。
java.io.IOException - FFSファイルのオープンに失敗した場合に発生します。

openInputStream

public java.io.InputStream openInputStream(FFSFile ffsFile)
                                    throws java.io.IOException
入力ストリームを取得します。

オーバーライド:
クラス FFSAccessManager 内の openInputStream
パラメータ:
ffsFile - FFSファイルクラスインスタンスを指定します。
戻り値:
入力ストリームを返します。
例外:
java.lang.NullPointerException - ffsFileがnullの場合に発生します。
java.lang.IllegalArgumentException - ダウンロード領域以外(アプリケーション格納エリアや通常のFFSファイル)が指定された場合に発生します。
java.io.IOException - FFSファイルのオープンに失敗した場合に発生します。

getFileList

public java.util.List<FFSFile> getFileList()
ダウンロード領域のリストを取得します。

ダウンロード領域は一つですので、本メソッドで返却するリストの要素数は必ず一つとなります。

オーバーライド:
クラス FFSAccessManager 内の getFileList
戻り値:
ダウンロード領域のリストを返します。

getApplicationAreaList

public java.util.List<FFSFile> getApplicationAreaList()
アプリケーション格納エリアのリストを取得します。 アプリケーションのインストールを行った場合、アプリケーション格納エリアに格納されているアプリケーションが変更されます。

戻り値:
アプリケーション格納エリアのリストを取得します。 先頭の要素には現在動作中のアプリケーションがインストールされているアプリケーション格納エリアが入ります。 ただし、現在動作中のアプリケーションがインストールされているアプリケーション格納エリアに対して updateApplicationArea(FFSFile) メソッドが実行され、 格納されているアプリケーションが更新された場合、更新された領域が先頭の要素に入ります。

updateApplicationArea

public void updateApplicationArea(FFSFile ffsFile)
                           throws jp.co.aplix.avm.LoadableModuleException,
                                  java.io.IOException
ダウンロード領域に保存したアプリケーションをインストールします。

本メソッドによって、ダウンロード領域に保存したアプリケーションをインストールします。 インストールするとダウンロード領域のアプリケーションは無くなります。なお、インストール先のアプリケーションが使用していたNVM領域、FFSファイルの内容は初期化されません。

インストール先のアプリケーション格納エリアにアプリケーションがインストール済み、かつ当該アプリケーションが次回モジュール電源ON時に起動するアプリケーションに 設定されていた場合、新たにインストールされたアプリケーションが次回モジュール電源ON時に起動するアプリケーションとして設定されます。

次回モジュール電源ON時に起動するアプリケーションを、インストールしたアプリケーションに切り替えるには、以下の手順を踏んでください。
ModuleManager.getApplicationList()にて、インストール済みの(次回モジュール電源ON時に起動できる)アプリケーションを取得します。
ModuleManager.changeApplication(com.docomo_um.module.Application)によって次回モジュール電源ON時に起動するアプリケーションを設定します。
ModuleManager.reset()、もしくはModuleManager.turnOff()ModuleManager.turnOff(java.util.Date)にて一度電源をOFFして再起動して下さい。

パラメータ:
ffsFile - インストール先のアプリケーション格納エリアを指定します。 アプリケーション格納エリアのリストはgetApplicationAreaList()にて取得してください。
例外:
java.lang.NullPointerException - ffsFileがnullの場合に発生します。
java.lang.IllegalArgumentException - ffsFileにアプリケーション格納エリア以外のFFSファイル(ダウンロード領域や通常のFFSファイル)を指定した場合に発生します。
java.lang.IllegalStateException - ダウンロード領域にアプリケーションが無い場合に発生します。
jp.co.aplix.avm.LoadableModuleException - ダウンロード領域のアプリケーションのフォーマットが不正である場合に発生します。
java.io.IOException - 入出力エラーの場合に発生します。
関連項目:
ModuleManager.getApplicationList(), ModuleManager.changeApplication(com.docomo_um.module.Application), getApplicationAreaList()

getRemainSize

public int getRemainSize()
                  throws java.io.IOException
ダウンロード領域の空きメモリサイズ(byte)を取得します。

オーバーライド:
クラス FFSAccessManager 内の getRemainSize
戻り値:
ダウンロード領域の空きメモリサイズ(byte)を返します。
例外:
java.io.IOException - ダウンロード領域の空きメモリサイズ取得に失敗した場合に発生します。

Copyright © 2013 NTT DOCOMO, INC. and Hitachi Kokusai Electric Inc. All Rights Reserved.