我試圖將所有聯繫人都設置爲vCard。在Android中將所有聯繫人設置爲vcard
所以這是我的代碼:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ContentResolver cr = getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,
null, null, null, null);
if (cur.getCount() > 0) {
//cur.moveToFirst();
while (cur.moveToNext()) {
try{
String lookupKey =
cur.getString(cur.getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY));
Uri uri =
Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_VCARD_URI,
lookupKey);
AssetFileDescriptor fd =
this.getContentResolver().openAssetFileDescriptor(uri, "r");
FileInputStream fis = fd.createInputStream();
byte[] buf = new byte[(int)fd.getDeclaredLength()];
if (0 < fis.read(buf))
{
String vCard = new String(buf);
System.out.println("The vCard value is " + vCard);
}
fis.close();
}
catch(Exception e)
{
System.out.println(e.getStackTrace());
}
}
}
cur.close();
System.out.println(cur.getCount());
}
}
這給了我幾乎所有的聯繫人,但它不會返回一個包含一些特殊的字符一些接觸,在葡萄牙我們說「mãe」(媽媽),這段代碼無法識別它。所有其他的名字,如「António」似乎都沒有。
我被困在這裏很長一段時間。
感謝回覆。節日快樂=) – 2011-12-20 19:55:39