2012-10-04 103 views
0

我希望能夠使用聯繫人姓名(非常簡單),電話號碼以及ICS支持的該電話號碼的自定義標籤向聯繫人添加聯繫人。例如,我可能希望將電話號碼「xxx-xxx-xxxx」中的「John Doe」添加爲自定義類型「Blackberry」。這種粒度可能嗎?添加聯繫人的自定義電話號碼標籤

回答

2

這可以通過如下所示的Intent完成。 (獎金:你不必問讀/寫權限接觸!)你感興趣的具體領域是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, "[email protected]"); 
    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, "")); 
} 
+0

從您的代碼下面兩行沒有很好地工作: intent.putExtra(ContactsContract.Intents.Insert.SECONDARY_PHONE,555-444-3333); intent.putExtra(ContactsContract.Intents.Insert.SECONDARY_PHONE_TYPE,「學校電話」); 由此產生的意圖不包含Nexus 6(Android N)上提到的電話號碼和類型。 –

0

嘗試這段代碼。 這是自定義在一個聯繫人內添加多條記錄。
將聯繫人詳細信息應用程序保存到默認電話聯繫簿非常容易。

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, "[email protected]"); 
     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, "[email protected]"); 
     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, "[email protected]"); 
     intent.putExtra(ContactsContract.Intents.Insert.PHONE, "555-555-5555"); 
     intent.putParcelableArrayListExtra(ContactsContract.Intents.Insert.DATA, data); 
     startActivity(intent); 
相關問題