Adobe AIR モバイルアプリで NFC タグを読み取っています。データは ByteArray として読み取られますが、全文を取得するのが困難です。タグのサンプル テキストは「http://www.google.com」です。
このメソッドを使用すると、文字列 "http://www.goog" の一部を取得できますが、すべてではありません。各文字が1バイトではないため、私は推測しています:
private static function convertToString(byte_array : ByteArray) : String {
var arr : Array = [];
for (var i : Number = 1 ; i <= byte_array.bytesAvailable; i++) {
arr.push(byte_array.readUTFBytes(i));
}
var finalString : String = "";
for (var t : Number = 0; t < arr.length;t++) {
finalString = finalString + arr[t].toString();
}
return finalString;
}
以下の方法も試しましたが、null を返します。
bytes.readUTF();
byteArray を base64 文字列に変換してからデコードする必要があるかどうか疑問に思っています。余分な手順のように思えますが、AMFPHP を使用してサーバーとの間でデータを送受信するときに以前に行った方法です。
ご意見をお寄せいただきありがとうございます。