2017-08-03 2 views
0

Ich versuche, einen Kontakt mit meiner Android-App zu teilen, und Im Lager. Gibt es eine Möglichkeit, einen Kontakt direkt über Intents zu teilen? Oder muss ich die Kontaktinformationen senden und in dem anderen Gerät neu erstellen? Gibt es noch eine andere Möglichkeit, dies zu tun, ohne Absichten zu verwenden?Kontakte in android teilen

Antwort

1

Sie können ContactsContract APIs verwenden, um einen Kontakt als vcard-Datei freizugeben (z. B. zum Senden über WhatsApp).

(ich nehme an, Sie bereits die lookupKey Kontakt haben, wenn Sie es nicht haben, lassen Sie mich wissen, und ich werde den Code für das Erhalten es von ContactID hinzufügen)

UPDATE hinzugefügt Methode LookupKey von ContactID

(stellen Sie sicher, dass Sie importieren Contacts von ContactsContract.Contacts)

private String getLookupKey(long contactId) { 
    String lookupKey = null; 
    String[] projection = new String[]{Contacts.LOOKUP_KEY}; 
    String selection = Contacts._ID + "=" + contactId; 
    Cursor c = getContentResolver().query(Contacts.CONTENT_URI, projection, selection, null, null); 
    if (c != null) { 
     if (c.moveToFirst()) { 
      lookupKey = c.getString(0); 
     } 
     c.close(); 
    } 
    return lookupKey; 
} 

String lookupKey = getLookupKey(long contactId); 
if (TextUtils.isEmpty(lookupKey)) { 
    Log.e(TAG, "couldn't get lookupKey"); 
    return; 
} 
Uri shareUri = Uri.withAppendedPath(Contacts.CONTENT_VCARD_URI, lookupKey); 

Intent intent = new Intent(Intent.ACTION_SEND); 
intent.setType(Contacts.CONTENT_VCARD_TYPE); 
intent.putExtra(Intent.EXTRA_STREAM, shareUri); 
intent.putExtra(Intent.EXTRA_SUBJECT, "Share a contact"); 
startActivity(intent); 
+0

Vielen Dank für die Antwort, Es tut uns leid, aber ich weiß nicht einmal, was ein LookupKey eines Kontakts ist, würde es Ihnen etwas ausmachen, mir das zu erklären und den Code fallen zu lassen? – Maxi

+0

Haben Sie eine Kontakt-ID? – marmor

+0

ja, ich habe, es funktioniert, vielen dank: D – Maxi

0

Die Strategie, die ich verwenden würde, wäre, die gewünschten Kontakte lokal zu holen. Dann parsen Sie diese in JSON-Objekte mit den gewünschten Feldern. Senden Sie den JSON entweder an einen Server, von dem der andere Benutzer herunterlädt, oder senden Sie den JSON über Bluetooth an ein anderes Gerät.

+0

ich verstehe, aber zum Beispiel zu bekommen, wenn ich es über whatsApp senden wollen, wie kann ich die json einen Kontakt auszukommen obje in WhatsApp? – Maxi