Я хотел бы сохранить и синхронизировать контакты с телефоном Контакты. Сохраненные контакты из моего приложения должны появляться под некоторым синхронизатором. Если приложение удалено, все эти контакты должны быть удалены.Android обеспечивает/синхронизирует контакты из приложения
После прочтения документации на Android я создал SyncAdapter и ContentProvider. Единственное, что сейчас делают эти два, это создать учетную запись. Мой ContentProvider еще не фиктивный.
Первое, что я хотел бы сделать, это вручную сохраняя контакт с помощью своей собственной учетной записи синхронизации. Следующий код, который я нашел в SO, создает только телефонный контакт без ссылки на мою учетную запись синхронизации.
public static boolean insertContact(ContentResolver contactAdder,
String firstName, String mobileNumber) {
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
ops.add(ContentProviderOperation
.newInsert(ContactsContract.RawContacts.CONTENT_URI)
.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null)
.withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null)
.build());
ops.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.GIVEN_NAME,
firstName).build());
ops.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,
mobileNumber)
.withValue(ContactsContract.CommonDataKinds.Phone.TYPE,
Phone.TYPE_MOBILE).build());
try {
contactAdder.applyBatch(ContactsContract.AUTHORITY, ops);
} catch (Exception e) {
return false;
}
return true;
}
Как я могу сохранить контакт из моего приложения под моим собственным syncaccount, так что вы можете видеть мое приложение логотип в списке контактов?
Сложно найти информацию об этом в Интернете. Большинство изменений касаются обмена/изменения существующих контактов.
Здравствуйте, как вы создаете своего поставщика контента и связываете его с контактами? –
Вы должны сохранить свой контакт, предоставив ACCOUNT_TYPE и ACCOUNT_NAME. Взгляните на ответ. – com2ghz
Да, но вы должны объявить провайдера в своем манифесте, нет? просто настройка типа строки сделает трюк? Я попробую сегодня вечером –