gpt4 book ai didi

java - Android 以编程方式插入的联系人未链接到我的应用程序

转载 作者:行者123 更新时间:2023-12-01 11:38:21 24 4
gpt4 key购买 nike

我使用以下代码为我的应用程序创建了一个自定义帐户:

    Account account = new Account(username, accountType);
ContentResolver.setIsSyncable(account, context.getString(R.string.CONTACT_AUTHORITY), 1);
ContentResolver.setSyncAutomatically(account, context.getString(R.string.CONTACT_AUTHORITY), true);
if(accManager.addAccountExplicitly(account, password, userData)) {
Intent intent = new Intent();
intent.putExtra(AccountManager.KEY_ACCOUNT_NAME, account.name);
intent.putExtra(AccountManager.KEY_ACCOUNT_TYPE, account.type);
intent.putExtra(AccountManager.KEY_AUTHTOKEN, account.type);
context.setAccountAuthenticatorResult(intent.getExtras());
context.setResult(Activity.RESULT_OK);
return account;
} else {
// display error
}

然后我尝试使用以下命令插入新联系人:

// insert new contact
ContentValues values = new ContentValues();
values.put(ContactsContract.RawContacts.ACCOUNT_TYPE, accountType);
values.put(ContactsContract.RawContacts.ACCOUNT_NAME, accountName);
Uri rawContactUri = getContentResolver().insert(ContactsContract.RawContacts.CONTENT_URI, values);
long rawContactId = ContentUris.parseId(rawContactUri);
Log.d("ABC", "New raw contact id = " + rawContactId);

// insert new rawContact id
values.clear();
values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);
values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE);
values.put(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, "zzzzzawesome");
getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values);

我能够插入新联系人,但问题是当我在联系人列表中查看该联系人时,它在“连接方式”部分中没有我的应用程序图标,而是显示电话图标,知道为什么吗?

顺便说一句,我正在使用三星 S5 进行测试。

enter image description here

最佳答案

终于解决了,问题出在没有SyncAdapter服务实现上。在 AndroidManifest.xml 中添加以下内容后,问题解决了。

    <service
android:name=".authenticator.ContactsSyncAdapterService"
android:exported="true">
<intent-filter>
<action android:name="android.content.SyncAdapter" />
</intent-filter>
<meta-data
android:name="android.content.SyncAdapter"
android:resource="@xml/sync_contacts" />
</service>

关于java - Android 以编程方式插入的联系人未链接到我的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29770826/

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