Ho appena inciampato anche in questo. Ecco un modo per farlo. Prima lascia che l'utente scelga il suo contatto o ottenga il contattoUri in un altro modo.
Dopo aver ricevuto il contatto, si cerca la chiave di ricerca e successivamente è possibile recuperare la vcard. Ecco il codice che ho usato dopo aver ottenuto il contactUri (tipo di copia incolla da diverse funzioni, ma dovrebbe funzionare).
Cursor cursor = resolver.query(contactUri, new String[] {
Contacts.LOOKUP_KEY
}, null, null, null);
FileInputStream input = null;
try {
if (cursor.moveToFirst()) {
return cursor.getString(0);
} else return;
AssetFileDescriptor afd = context.getContentResolver().openAssetFileDescriptor(
Uri.withAppendedPath(Contacts.CONTENT_VCARD_URI, lookupKey), "r");
input = afd.createInputStream();
int ch;
StringBuffer strContent = new StringBuffer("");
while ((ch = input.read()) != -1)
strContent.append((char) ch);
Log.d(TAG, strContent.toString());
} finally {
cursor.close();
if (input != null) {
input.close();
}
}
fonte
2011-05-20 00:59:54
Spero che questa risposta vi aiuterà a: "[Get Data vCard Android da Intent] [1]" [1]: http://stackoverflow.com/questions/12659323/android -get-vCard-dati-da-intento/12771561 # 12771561 –