Ich bin gerade mit diesem auch gestolpert. Hier ist ein Weg, es zu tun. 1. Lassen Sie den Benutzer seinen Kontakt auswählen oder KontaktUri auf andere Weise erhalten.
Nachdem Sie den KontaktUri haben, suchen Sie den Lookup_key und danach können Sie die Vcard abrufen. Hier ist der Code, den ich verwendet habe, nachdem ich die contactUri (Art der Kopie einfügen aus verschiedenen Funktionen, sollte aber funktionieren).
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();
}
}
Ich hoffe, diese Antwort wird Ihnen helfen: "[Android get vCard Daten von Intent] [1]" [1]: http://stackoverflow.com/questions/12659323/android -get-vcard-Daten-von-Absicht/12771561 # 12771561 –