![](/img/trans.png)
[英]In Android, is there a way to prevent the stock contacts app from editing contacts in my custom sync adapter?
[英]Android provide/sync contacts from app
我想保存联系人并将其与手机通讯录同步。 从我的应用程序保存的联系人应出现在某些同步帐户下。 如果该应用已卸载,则应删除所有这些联系人。
阅读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;
}
如何将应用程序中的联系人保存在我自己的同步帐户下,以便您可以在“联系人”列表中看到我的应用程序徽标?
在互联网上很难找到有关它的一些信息。 大多数结果与交换/修改现有联系人有关。
我已成功将联系人保存在同步帐户下!
我好近 只是在插入时给出了帐户类型和名称:
ops.add(ContentProviderOperation
.newInsert(ContactsContract.RawContacts.CONTENT_URI)
.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, MY_ACCOUNT_TYPE)
.withValue(ContactsContract.RawContacts.ACCOUNT_NAME, MY_ACCOUNT_NAME)
.build());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.