2017-08-03 10 views
0

私のアンドロイドアプリを使用して連絡先を共有しようとしています。インテントを使用して連絡先を直接共有する方法はありますか?または、連絡先情報を送信して、他のデバイスで再構築する必要がありますか?また、インテントを使用せずにこれを行う方法は他にありますか?アンドロイドで連絡先を共有する

答えて

1

ContactsContract APIを使用して連絡先をvCardファイルとして(たとえばWhatsapp経由で)送信することができます。

(私はあなたがそれを持っていない場合、私に知らせて、あなたはすでに連絡先のlookupKeyを持っていると仮定している、と私はcontactIdからそれを取得するためのコードを追加します)

UPDATE追加方法ContactId

からLookupKeyを取得するために

私はJSONに接触するように行うことができますどのように、私はのWhatsAppを経由して、それを送信する場合、私は理解して

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

お返事ありがとうございます、ごめんなさい申し訳ありませんが、私は連絡先のlookupKeyが何であるか知っていません。そのことを説明してコードを削除してもよろしいですか? – Maxi

+0

あなたはcontact-idを持っていますか? – marmor

+0

はい、私は、それは働いています、ありがとうあなたは非常に:D – Maxi

0

私が使用する戦略は、希望の連絡先をローカルに取得することです。次に、これらを解析して、目的のフィールドを持つJSONオブジェクトを作成します。他のユーザーがダウンロードしたサーバーにJSONを送信するか、JSONを他のデバイスに送信してください。

+0

はなく、例えば(必ずContactsContactsContract.Contactsからインポートします)オブジェクトwhatsappでct? – Maxi

関連する問題