次の 1 行を含むファイルをサーバーにアップロードするとします。
1.2.3.4
このプロセスは、Android と BB で同様です。
1- サーバーからファイルを取得します。結果として、おそらくバイト配列が得られるでしょう。
2-適切なエンコーディングで文字列に変換します。txt に数字とドットのみが含まれる場合、これらは ASCII 文字であり、ASCII 文字は UTF-8 や ISO-8859 などのほとんどの通常のデフォルト エンコーディングと互換性があるため、エンコーディングはそれほど重要ではありません。したがって、次のように、エンコーディングを処理せずに文字列をインスタンス化できる可能性がありますString fileContent = new String(byte[] downloadedData)
。それ以外の場合は、txt ファイルのエンコーディングを事前に確認し、そのエンコーディングで文字列をインスタンス化してください。
3-ドットをセパレータとして使用して文字列を分割します。Android では、次のように実行できます: String[] splitted = String.split(fileContent, '.')
、またはStringTokenizer
. BB では、CLDC に基づいているため、String のこのメソッドは使用できないため、自分でコーディングするか、十分にテストされたライブラリ (Apache Commons の org.apache.commons.lang3.StringUtils.split など) から 1 つを使用/移植する必要があります。 )。このステップの後、文字列の配列が得られます。各文字列は数値です (例では {"1","2","3","4"})。
Integer.parseInt(splitted[i])
4- 同じ長さの int 配列を作成し、 on each elementを使用して、配列内の各文字列を同等の int に変換しますi
。
5- アプリのバージョンを取得し、同じ手順を実行して int の配列を取得します。BB では、 を呼び出すことができますApplicationDescriptor.currentApplicationDescriptor().getVersion()
。マニフェストで指定した内容に応じて、Android では、PackageInfo.versionCode
または。PackageInfo.versionName
6- 両方の配列が同じ長さである必要はないことに注意してください。txt に「1.2.3.4」と記述しても、AndroidManifest.xml または BlackBerry_App_Descriptor.xml には「1.2.3」と記述できます。両方の結果の int 配列を同じ長さ (長い方の長さ) になるように正規化し、追加された要素をゼロで埋めます。これで、2 つの int 配列ができました (例では、txtVersion = {1,2,3,4} と appVersion = {1,2,3,0})。バージョンを 1 つずつ比較して繰り返します。ルールは次のとおりです。txtVersion[i] > appVersion[i] の場合、古いバージョンであり、アップグレードが必要です。