連絡先の名前(簡単)、電話番号だけでなく、ICSでサポートされているその電話番号のカスタムラベルを使用して、ユーザーの連絡先に連絡先を追加できるようにしたいと思います。たとえば、電話番号「xxx-xxx-xxxx」の「JohnDoe」をカスタムタイプ「Blackberry」として追加したいとします。この粒度は可能ですか?
質問する
1539 次
2 に答える
2
これは、以下に示すようにインテントを使用して実行できます。(ボーナス:連絡先の読み取り/書き込み権限を要求する必要はありません!)関心のある特定のフィールドは、ContactsContract.Intents.Insert.PHONE_TYPEおよびContactsContract.Intents.Insert.SECONDARY_PHONE_TYPEです。
private void addContact(Activity activity)
{
Intent intent = new Intent(ContactsContract.Intents.Insert.ACTION);
intent.setType(ContactsContract.RawContacts.CONTENT_TYPE);
intent.putExtra(ContactsContract.Intents.Insert.NAME, "John Smith");
intent.putExtra(ContactsContract.Intents.Insert.EMAIL, "john@example.com");
intent.putExtra(ContactsContract.Intents.Insert.PHONE, "555-555-5555");
intent.putExtra(ContactsContract.Intents.Insert.PHONE_TYPE, "Blackberry");
intent.putExtra(ContactsContract.Intents.Insert.SECONDARY_PHONE, 555-444-3333);
intent.putExtra(ContactsContract.Intents.Insert.SECONDARY_PHONE_TYPE, "School Phone");
activity.startActivity(Intent.createChooser(intent, ""));
}
于 2012-10-04T19:23:01.737 に答える
1
このコードを試してください。1つの連絡先内に複数のレコードを追加するカスタムです。
連絡先の詳細アプリケーションをデフォルトの電話連絡先帳に保存するのは非常に簡単です。
ArrayList<ContentValues> data = new ArrayList<ContentValues>();
ContentValues row2 = new ContentValues();
row2.put(ContactsContract.Contacts.Data.MIMETYPE, ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE);
row2.put(ContactsContract.CommonDataKinds.Email.TYPE, ContactsContract.CommonDataKinds.Email.TYPE_CUSTOM);
row2.put(ContactsContract.CommonDataKinds.Email.LABEL, "Green Bot");
row2.put(ContactsContract.CommonDataKinds.Email.ADDRESS, "android@android.com");
data.add(row2);
ContentValues row3 = new ContentValues();
row3.put(ContactsContract.Contacts.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
row3.put(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_CUSTOM);
row3.put(ContactsContract.CommonDataKinds.Phone.LABEL, "Arpit");
row3.put(ContactsContract.CommonDataKinds.Phone.NUMBER, "Aaa@android.com");
data.add(row3);
Intent intent = new Intent(Intent.ACTION_INSERT, ContactsContract.Contacts.CONTENT_URI);
intent.putExtra(ContactsContract.Intents.Insert.NAME, "Jiks");
intent.putExtra(ContactsContract.Intents.Insert.EMAIL, "john@example.com");
intent.putExtra(ContactsContract.Intents.Insert.PHONE, "555-555-5555");
intent.putParcelableArrayListExtra(ContactsContract.Intents.Insert.DATA, data);
startActivity(intent);
于 2017-09-27T12:14:32.427 に答える