3

現在、Java MEを使用して、PIM(JSR75仕様)を介してデバイスのアドレスブック(ContactList)フィールドを抽出しています。フィールドのデータ型が文字列の場合、フィールドの値の最大長を取得する際に問題が発生します。私は当初、APIに似たようなメソッドがあると思っていgetFieldLength(int fieldId)ましたが、残念ながら何も見つかりませんでした。

これを入手する方法はありますか?

フィールド定義自体を読み取るだけなので、フィールドのデータ長を知る必要があります。値ではありません。デバイスでサポートされているすべてのフィールドを収集する必要があります。これらのフィールドから、フィールドの名前、データ型、および最大長を取得する必要があります。デバイスの移植を目的として、上記の情報をサーバーアプリケーションに送信しています。

4

1 に答える 1

2

フィールドの最大長を取得することは、PIMAPIの一部ではありません。

ただし、フィールドに長さが長くなるコンテンツを書き込もうとすることで、これを回避できます。

コンテンツの書き込みに失敗すると、例外がスローされます。

テストするフィールドごとに、512バイトを書き込み、次に1kb、2kb、4kbを書き込みます。

私の推測では、ほとんどの電話では、必要なすべてのデータを書き込むことができます。

書き込みの試行の間にフィールドを削除することを忘れないでください。

本当にバイトを正確にする必要がある場合は、上限を見つけたら二分法を使用できます。

于 2012-06-27T09:07:55.440 に答える