独自のアプリ (および Android ビーム) を使用して連絡先を別のデバイスにビームし、連絡先リスト (つまり、既定の連絡先アプリ) に保存するにはどうすればよいでしょうか。送信側デバイスの連絡先は、ContactsContract
プロバイダーによって提供されます。
できれば、他のデバイスでアプリを実行したくありません。組み込みの連絡先アプリ (Android の既定のアプリ) は、連絡先をビームおよび受信できます。そのため、カスタム アプリを使用して連絡先を組み込みの連絡先アプリに転送できるはずです。
この質問への回答は、それが可能であり、VCARD 形式を使用できることを示唆しています。
現在、私のアプリは電話番号で連絡先を検索し、それを新しいアクティビティ (組み込みの連絡先アプリ) に表示します。下記参照。
Uri uri = Uri.fromParts("tel", number.getText().toString(), "");
Log.d("ContactPicker", uri.toString());
startActivity(new Intent(ContactsContract.Intents.SHOW_OR_CREATE_CONTACT, uri));
// Example log message for the number (123)-123-1234 is "tel:(123)%20123-1234"
私はこの方法でやりたいと思っていますが、見つかった連絡先 (または、既存の連絡先が見つからなかった場合は作成された連絡先) を返すことができないため、それが可能だとは思いません。その特定の連絡先を送信したい場合は、その情報が必要です。
おそらく、すべての連絡先を照会し、探している連絡先を見つけて、その ID を保存する必要があります。
注: API 14 を使用しています
編集
これを行う概念実証アプリを作成しました: https://github.com/dideler/HiFive
アプリにバグがある可能性があります。メンテナンスはされていませんが、プルリクエストは大歓迎です。