Ich habe versucht, eine Kontaktkarte mit den hier aufgeführten Methoden zu öffnen, aber irgendwie wurde die Kontaktaktivität sofort nach dem Öffnen geschlossen.
Es schien, dass die Kontaktaktivität meine alte Inhaltsuri nicht akzeptierte.
Ich habe dieses Problem mit der Methode getLookupUri (long contactId, String lookupKey)
Methode der ContactsContract.Contacts
Klasse, um die richtige Inhaltsuri zu erhalten https://developer.Android.com/reference/Android/provider/ContactsContract.Contacts.html#getLookupUri(long, java.lang.String)
Der Code zum Öffnen einer Kontaktkarte lautet also:
Intent intent = new Intent(Intent.ACTION_VIEW);
String lookupKey = phonesCursor.getString(phonesCursor.getColumnIndexOrThrow(ContactsContract.PhoneLookup.LOOKUP_KEY));
long contactId = phonesCursor.getLong(phonesCursor.getColumnIndexOrThrow(ContactsContract.PhoneLookup._ID));
Uri uri = ContactsContract.Contacts.getLookupUri(contactId, lookupKey);
intent.setData(uri);
startActivity(intent);