BlackBerryの携帯電話の上で、Javaプログラミングの実現プログラムの中で複数のcodをダウンロードしてインストールして、自分をアップグレードします


ディレクトリ:src
説明:RIMが提供するサンプルコードに基づいて、少し修正します.
1.ネットワーク接続状況がDirect接続に対応しているか否かを判断する(原コードはMDS接続状況を判断する)
2.  ネットワーク接続状況は、中国移動/中国電信/中国聯通が異なるAPN cmnet 3 gnetまたはWAP 2.0接続を取るために使用していると判断し、判断に応じて対応するネットワーク接続を使用する(元コードはMDS接続を使用する)
3.  BlackBerry SDK 5.0に対応するAPIがないため、元のコードのtitlebarを削除します.
ディレクトリ:build.ota
ファイル:a.jad   CodeModuleInstallerSample.cod
説明:コンパイルしたインストーラは、使用する時、jadとcodファイルをapacheのウェブサイトの任意のディレクトリの下に置いて、携帯電話の上でOTAインストールすることができます
ユーザーOTAのインストールを容易にするため、jadファイルの名前をa.jadに変更します 
目次:installerSample
次の3つのディレクトリと説明ファイル、ClorfulTimeExtracted、Goonuu、NetworkSample、アプリケーションList.txt
説明:プログラムコードとセカンダリディレクトリの下にある複数のtxtファイルでhardcodeがインストールパスを指しています.http://shanghai.springworks.info/installerSample/applicationList.txt
プログラムのソースコードのダウンロードはここを猛撃します
テストプログラムの直接ダウンロード
 インストール後、メニュー「checkfor update」をクリックし、ちょっと待って、2つのプログラムがインストールされます(goonnuu,corfultime).
注意:この2つのプログラムはインストール後、直接プログラムアイコンをクリックして実行することができ、再起動する必要はありません.
==================================================================================
後記:
プログラムAにAPIで簡単にプログラムAのcodファイルを再インストールすると,restartマシンにプロンプトを出さず,ユーザがバッテリボードを抜かずに更新したプログラムAが機能しない場合がある.
では、プログラムはどのように自分をアップグレードしますか?方法は次のとおりです.
Step 1:自分を削除!(梅の宝典、神功を磨こうとして、刀を引いて宮から出た)
Step 2:新しいcodファイルをダウンロード
Step 3:codファイルのインストール
原文参照:http://blog.vimviv.com/blackberry/upgrade-application-blackbery/
public void upgrade() {
//Delete it self.
		 int handle = CodeModuleManager.getModuleHandle(moduleName);
		 if (handle != 0) {
		 int success = CodeModuleManager.deleteModuleEx(handle, true);
		 System.out.println("response: " + success);
		 }
// Download new cod files(included sibling files).
		byte[] codBuff = null;
		String[] cod = new String[3];
//assuming that application contents 3 cod files.
		cod[0] = getViaHttp("moduleName");
		cod[1] = getViaHttp("moduleName-1");
		cod[2] = getViaHttp("moduleName-2");
		System.out.println("download complete");
		int newHandle = 0;
		// API REFERENCE:
		// You need to write the data in two separate chunks.
		// The first data chunk must be less thank 64KB in size.
		int MAXAPPEND = 61440; // 1024*60;
		for (int i = 0; i < 3; i++) {
			codBuff = cod[i].getBytes();
			if (codBuff.length > MAXAPPEND) {
				newHandle = CodeModuleManager.createNewModule(codBuff.length,
						codBuff, MAXAPPEND);

				boolean appendSucc = CodeModuleManager.writeNewModule(
						newHandle, MAXAPPEND, codBuff, MAXAPPEND,
						codBuff.length - MAXAPPEND);

				codBuff = null;
			} else {
				newHandle = CodeModuleManager.createNewModule(codBuff.length,
						codBuff, codBuff.length);

			}
//install the module
			if (newHandle != 0) {
				int savecode = CodeModuleManager.saveNewModule(newHandle, true);
				if (savecode == CodeModuleManager.CMM_OK_MODULE_OVERWRITTEN)
					System.out
							.println("The operation completed successfully; a module was overwritten and marked for deletion in the process.");
			}
			System.out.println(i + " module installed");
		}

//restart the blackberry if reuired
		if (CodeModuleManager.isResetRequired())
			CodeModuleManager.promptForResetIfRequired();
	}