Android создать контактную проблему - PullRequest
2 голосов
/ 22 ноября 2010

Привет, я хочу создать контакт, поэтому вот мой код:

Intent addPersonIntent = new Intent(Intent.ACTION_INSERT_OR_EDIT);

addPersonIntent.putExtra(Insert.NAME, "asd");
addPersonIntent.setType(Contacts.People.NAME);

addPersonIntent.putExtra(Insert.PHONE_TYPE, Contacts.Phones.TYPE_WORK);
addPersonIntent.putExtra(Insert.PHONE, Uri.decode("123"));
addPersonIntent.putExtra(Insert.PHONE_TYPE, Contacts.Phones.TYPE_MOBILE);
addPersonIntent.putExtra(Insert.PHONE, Uri.decode("123"));
addPersonIntent.setType(Contacts.Phones.CONTENT_ITEM_TYPE);

...

startActivity(addPersonIntent);

Почему единственное, что создается, это номер мобильного телефона, я никогда не получал "рабочий" номер?

Ответы [ 2 ]

2 голосов
/ 22 ноября 2010

Вы думаете о "putExtra" как о добавлении в конец массива. Ваша проблема станет более понятной, если вы подумаете об этом как об установке пар имя / значение в хеш-таблице.По сути, вы устанавливаете PHONE_TYPE на «работа», PHONE на 123, PHONE_TYPE на «мобильный» (перезаписывая, когда он был установлен на работу), и PHONE на «123» снова.

Что вы хотите сделатьустанавливается для данных «мобильного» или «рабочего» телефона с использованием SECONDARY_PHONE и SECONDARY_PHONE_TYPE - Подробности здесь.

Также имейте в виду, что все это следует старой версии API контактовкоторый устарел с Android 2.0+.Существует удобный ресурс по переносу вашего кода для использования нового API контактов здесь .

1 голос
/ 23 ноября 2010

следующая проблема, когда я добавляю:

addPersonIntent.putExtra (Insert.NOTES, "asdkjhaskh");

данные заметки никогда не появляются в действии, почему?1005 *

Вся идея в том, чтобы запустить EditContactActivity.java с загруженными данными, и на данный момент я загрузил телефоны, имена и компании.По какой-то причине я не могу загрузить заметки, а другая проблема заключается в том, как установить информацию о намерениях для IM?Например, я попытался с:

addPersonIntent.putExtra (Insert.IM_HANDLE, "mySkype");addPersonIntent.putExtra (Insert.IM_PROTOCOL, Uri.decode ("skype"));

, но он не работает.

...