我想打開預存了街道地址,電話號碼,電子郵件等的工作表的「保存新聯繫人」對話框,然後用戶可以修改,添加或保存。在Android上,打開使用預填充聯繫表添加新聯繫人的正確方法是什麼?
我見過幾種方法。
1)此方法已被棄用,但大部分工作(無法使用地址等複合類型)。
Intent i = new Intent(Intent.ACTION_INSERT_OR_EDIT);
i.setType(ContactsContract.Contacts.CONTENT_ITEM_TYPE);
i.putExtra(Insert.NAME,"Name");
i.putExtra(Insert.PHONE,"Number");
startActivity(i);
2)這種方法似乎是一個很好的解決方案,但我不能這個數據附加到意圖打開聯繫人應用程序。只有編程式自動插入新聯繫人。
ArrayList<ContentProviderOperation> op=new ArrayList<ContentProviderOperation>();
/* ops.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)
.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, mSelectedAccount.getType())
.withValue(ContactsContract.RawContacts.ACCOUNT_NAME, mSelectedAccount.getName())
.build()); */
op.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
.withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)
.withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, name)
.build());
op.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
.withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)
.withValue(ContactsContract.CommonDataKinds.Phone.NUMBER,phone).build());
getContentResolver().applyBatch(ContactsContract.AUTHORITY, op);
解決此問題的最佳做法是什麼?
謝謝。
接觸的一般信息,尋找文件「這種方法已經過時」 - 真的嗎? – CommonsWare
我從IDE此警告在該行 \t 多個標記 - 現場Contacts.Intents.Insert.NAME是 \t過時 \t - 類型Contacts.Intents.Insert已過時 – Joel