Я новичок в этом, поэтому, пожалуйста, извините за мой код (внесите предложения, пожалуйста)
Я пытаюсь создать приложение, которое добавляет новый контакт с учетом набора данных и полностью обновляет каждое поле в контакте, которыйимеет отношение к работодателю или работнику.
Я понимаю, что информация может быть получена из намерений, и для ее получения требуется определенный ключ.
Я понимаю, что могу использовать Intents.Intent.NAME
и другиеаналогичные константы для ключей для более общих полей.Я заметил, что все эти константы строчные и именно то, что вы ожидаете.Intents.Intent.NAME
возвращает «имя».Я читал, что это соглашение, которое соблюдается для программирования Android.
Например, при попытке обновить адрес, я использую Intents.Intent.POSTAL
в качестве ключа и строку для адреса, содержащего улицу, город, штат, почтовый индекс и страна в этом порядке.Это обновит всю эту информацию в поле «Улица».
Я пробовал много строк, которые были бы разумными ключами для города, штата и т. Д., И ни одна из них, похоже, не работает.Я также попытался ввести "\ n" между строками улицы, города, штата, почтового индекса и страны, чтобы увидеть, будут ли они автоматически переходить к следующему текстовому полю (в качестве обходного пути).К сожалению, поле «Улица» является многострочным, и оно тоже не работает.
Даже при попытке обновить префиксы и суффиксы для имени человека разумные строки, служащие ключами, не работают.
В целом, у меня возникают проблемы при обновлении следующих полей, поскольку я не знаю их соответствующих ключей:
- Префикс (часть категории «Имя»)
- Суффикс (часть категории «Имя»)
- Веб-адрес («Больше элементов»)
- Дата / События («Больше элементов»)
- Город / Штат / Zip/ Страна (категория "Адрес")
Вот мой код в настоящее время, у меня есть его, чтобы применить этот метод к нажатию кнопки.Я предоставил много тестов, чтобы показать мою точку зрения. Я не могу найти ключ, необходимый для обновления этих полей.Если есть какие-либо способы сбора информации о том, где поля проверяют данные при обновлении по намерению, сообщите мне.Если есть другой способ более безошибочно обновить контактную информацию, пожалуйста, дайте мне знать.СПАСИБО за помощь!
Intent insertIntent = new Intent(Intents.Insert.ACTION);
insertIntent.setType(ContactsContract.RawContacts.CONTENT_TYPE);
insertIntent.putExtra("name", "This T. Works");
insertIntent.putExtra("name_given", "Thiss");
insertIntent.putExtra("name_middle", "Doess");
insertIntent.putExtra("name_family", "Nott");
// All working properly
insertIntent.putExtra(ContactsContract.Intents.Insert.EMAIL, "testing@testrun.com");
insertIntent.putExtra(ContactsContract.Intents.Insert.PHONE, "(098) 765-4321");
insertIntent.putExtra(ContactsContract.Intents.Insert.COMPANY, "TEST INC.");
insertIntent.putExtra(Intents.Insert.SECONDARY_PHONE, "(123) 456-7890");
insertIntent.putExtra(Intents.Insert.JOB_TITLE, "Tester");
insertIntent.putExtra(Intents.Insert.IM_HANDLE, "@tester");
// Not working at all... No "City" constant
insertIntent.putExtra("postal_city", "Testopolis1");
insertIntent.putExtra("city", "Testopolis2");
insertIntent.putExtra("City", "Testopolis3");
// Not working at all... No "State" constant
insertIntent.putExtra("postal_state", "Testopolis1");
insertIntent.putExtra("state", "Testopolis2");
insertIntent.putExtra("State", "Testopolis3");
// Not working at all... No "Zip" constant
insertIntent.putExtra("zip", "12345");
insertIntent.putExtra("ZIP", "11231");
insertIntent.putExtra("Zip", "12134");
insertIntent.putExtra("zipcode", "12314");
insertIntent.putExtra("zip_code", "12341");
insertIntent.putExtra("zipCode", "12434");
insertIntent.putExtra("postal_code", "14234");
insertIntent.putExtra("post_code", "11234");
insertIntent.putExtra("postCode", "12234");
insertIntent.putExtra("postalCode", "12334");
insertIntent.putExtra("postalcode", "12344");
// The "Postal" constant that puts everything into the "Street" field
insertIntent.putExtra(ContactsContract.Intents.Insert.POSTAL, "1234 TestRun Drive\n Testopolis5\n Testerland\n 55421\n USA");
startActivity(insertIntent);