gpt4 book ai didi

Android - 同步联系人以编程方式添加到谷歌帐户

转载 作者:太空狗 更新时间:2023-10-29 14:04:01 24 4
gpt4 key购买 nike

在我的应用中,我需要将联系人添加到默认的谷歌帐户并同步它。

这是我的代码:

public static void addContact(Context context, String DisplayName,String WorkNumber, String MobileNumber, String emailID,
String jobTitle, String company, String address){


ArrayList <ContentProviderOperation> ops = new ArrayList < ContentProviderOperation > ();
String account = getUsernameLong(context);

ops.add(ContentProviderOperation.newInsert(
ContactsContract.RawContacts.CONTENT_URI)
.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, "com.google")
.withValue(ContactsContract.RawContacts.ACCOUNT_NAME, account)

.build());

//------------------------------------------------------ Names
if (DisplayName != null) {
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.DISPLAY_NAME,
DisplayName).build());
}

..................

try {
context.getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
//requestSyncNow(context);
} catch (Exception e) {
e.printStackTrace();

try {
//Toast.makeText(context, "Exception: " + e.getMessage(), Toast.LENGTH_SHORT).show();
} catch (Exception e1) {

}
}
}

这里函数 getUsernameLong() 返回 google 帐户

public static String getUsernameLong(Context context) {
AccountManager manager = AccountManager.get(context);
Account[] accounts = manager.getAccountsByType("com.google");
List<String> possibleEmails = new LinkedList<String>();

for (Account account : accounts) {

// account.name as an email address only for certain account.type values.
possibleEmails.add(account.name);
Log.i("DGEN ACCOUNT","CALENDAR LIST ACCOUNT/"+account.name);
}

if (!possibleEmails.isEmpty() && possibleEmails.get(0) != null) {
String email = possibleEmails.get(0);
return email;

}
return null;
}

此代码将姓名添加到联系人,在手机上我可以看到它在 xxx@gmail.com 帐户上,但它不与远程帐户同步。我无法在作为联系人的 gmail 帐户或同一帐户的其他设备上找到它

我也尝试静态输入 google 帐户 xxxx@gmail.com 但结果是一样的,添加到电话联系人但不与 google 帐户同步。

更新代码没问题,我忘了在我的设备上启用谷歌帐户同步

最佳答案

您的代码在我的设备(Android 4.0.4 和 4.1.2)上运行良好,在 Google 服务器上,帐户联系人自动出现,并且从一台设备到另一台设备。顺便说一句,非常感谢您提供代码。

恕我直言,问题不在于代码,而在于您设备的同步设置。

关于Android - 同步联系人以编程方式添加到谷歌帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33821781/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com