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/
説明: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();
}