0
(代碼段修訂 - 現在的工作)ContactsContract編輯忽略電子郵件,電話意圖數據
根據Android的引用 http://developer.android.com/reference/android/provider/ContactsContract.Intents.Insert.html 它應該是可能的電子郵件和電話號碼數組傳遞給聯繫人編輯器。任何人都有這個成功?
經過大量的研究和實驗,似乎沒有任何工作 - 它只是忽略了參數,編輯器打開時只顯示名稱字段。這是運行Android 4.2.1的Nexus 7。聯繫人應用程序的版本是4.2.1-533553。
這裏是我的代碼(「形式」聲明和其他地方填寫):
Intent intent = new Intent();
intent.setAction (Intent.ACTION_INSERT);
intent.setData (ContactsContract.Contacts.CONTENT_URI);
intent.putExtra (ContactsContract.Intents.Insert.NAME, form.name);
ArrayList<ContentValues> parcels = new ArrayList<ContentValues>();
for (int i = 0; i < form.phones.length; i++)
{
ContentValues row = new ContentValues();
row.put (Data.MIMETYPE, CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
row.put (CommonDataKinds.Phone.NUMBER, form.phones[i]);
row.put (CommonDataKinds.Phone.TYPE, form.phoneIds[i]);
parcels.add (row);
}
for (int i = 0; i < form.emails.length; i++)
{
ContentValues row = new ContentValues();
row.put (Data.MIMETYPE, CommonDataKinds.Email.CONTENT_ITEM_TYPE);
row.put (CommonDataKinds.Email.ADDRESS, form.emails[i]);
row.put (CommonDataKinds.Email.TYPE, form.emailIds[i]);
parcels.add (row);
}
intent.putParcelableArrayListExtra (ContactsContract.Intents.Insert.DATA, parcels);
startActivityForResult (intent, ACTIVITY_REQUEST_FULL_EDIT);
謝謝 - 不能相信我錯過了。還有另一個問題。原來你只能調用一次putParcelableArrayListExtra;解決方案是將電話和電子郵件放在一個「包裹」中。 – 2013-02-25 18:40:16