電話帳の転送ができたら、次に必要なのはその内容を取捨選択して内部表現に変換する処理です。電話帳の表現形式はOPPで転送した場合、PBAPで転送した場合のどちらでもvCard形式ですが、いくつかの注意点があるようです。
電話帳でのデータには住所とか誕生日とかも入れられますが、今回は単純に名前と電話番号だけを拾いだすことにします。グループ番号/グループ名も拾えますが、電話帳メニューを構成する際の処理が必要となるので今回は見送り。また、これらの項目はvCardでの標準項目ではないので、事業者毎に項目名が異なっている可能性が高いと思われます。
- コード体系。Bluetoothの世界では、文字コードは基本UTF-8ということになっています。一方、DoCoMoなんかは過去の経緯もあってか、vCardでの文字コードにはSJISを使うようです。どちらのコードが使われているかの区別が必要となりますが、幸いなことにDoCoMoはCHARSETパラメータを用いて、明示的にSHIFT_JISが使われていることを示してくれるようです。PBAPを使う場合には、vCardのv2.1あるいはv3のどちらの形式で転送するかを指定でき、それによってもコードが変わるようです。Xperia arcで試したところでは、v2.1ではSHIFT_JISでしたが、v3の時にはUTF-8になるようです。
- エンコーディング。端末によって、8ビットで生コードを埋め込んでくれるものもあれば、QUOTED-PRINTABLEでエンコーディングするものもあるようです。ひょとすると、BASE64を使う端末もあるのかも?
電話帳でのデータには住所とか誕生日とかも入れられますが、今回は単純に名前と電話番号だけを拾いだすことにします。グループ番号/グループ名も拾えますが、電話帳メニューを構成する際の処理が必要となるので今回は見送り。また、これらの項目はvCardでの標準項目ではないので、事業者毎に項目名が異なっている可能性が高いと思われます。