J'essaie de lire les contacts de l'appareil Android au format VCard en utilisant Android Api. je l'ai trouvé un lien pour le même: Android contatcs vcard APIComment obtenir des contacts android au format Vcard en utilisant l'API native Android
et essayer d'écrire le même code mais sa ne fonctionne pas, car je ne suis pas en mesure d'obtenir le lookupkey:
ContentResolver cr = getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,
null, null, null, null);
int num = cur.getCount(); // I get 2 , as there are two contacts
String lookupKey = cur.getString(cur.getColumnIndex(Contacts.LOOKUP_KEY));
// The above line gives error : android.database.CursorIndexOutOfBoundsException:
// Index -1 requested, with a size of 2
Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_VCARD_URI, lookupKey);
AssetFileDescriptor fd = resolver.openAssetFileDescriptor(uri, "r");
FileInputStream fis = fd.createInputStream();
byte[] b = new byte[(int)fd.getDeclaredLength()];
fis.read(b);
String vCard = new String(b);
sb.append(vCard);
Quelqu'un peut-il s'il vous plaît me dire comment pour obtenir le lookupkey pour le code ci-dessus ou il y a un autre moyen que nous pouvons obtenir des contacts format VCard en utilisant Android api.
Je cherche comment obtenir LOOKUPKEY dans Uri.withAppendedPath (ContactsContract.Contacts.CONTENT_VCARD_URI, lookupKey); –
Vous avez raison Je demande une clé de recherche en utilisant cur.getString (cur.getColumnIndex (Contacts.LOOKUP_KEY)); Comme mentionné ci-dessus mais son exception: android.database.CursorIndexOutOfBoundsException: Index -1 demandé, avec une taille de 2 , est-il quelque chose de mal dans le démarrage du code ContactComtract, s'il vous plaît expliquer. –
avez-vous également consulté http://code.google.com/p/vcardio/ –