android联系人提供者:如何设置电话号码主要

Posted

技术标签:

【中文标题】android联系人提供者:如何设置电话号码主要【英文标题】:android contacts provider: how to set phone number primary 【发布时间】:2013-01-03 16:01:24 【问题描述】:

在添加或更新构建自定义联系人提供程序的联系人时,如何将联系人的电话号码设置为主号码。联系人的添加和更新工作正常,但我不知道如何将联系人的一个号码设置为主号码或默认号码。

【问题讨论】:

【参考方案1】:
mValues.put(Phone.IS_PRIMARY, 1);
mValues.put(Phone.IS_SUPER_PRIMARY, 1);

Phone.IS_PRIMARYPhone.IS_SUPER_PRIMARY 都必须设置。

【讨论】:

【参考方案2】:

我遇到了同样的问题,我的解决方法是:

ContentProviderOperation.Builder bld = ContentProviderOperation.newUpdate(Uri.withAppendedPath(ContactsContract.Data.CONTENT_URI, myRawIdOfNumber ));
bld = bld.withValue( ContactsContract.CommonDataKinds.Phone.IS_PRIMARY, new Integer(1) );
bld = bld.withValue( ContactsContract.CommonDataKinds.Phone.IS_SUPER_PRIMARY, new Integer(1) );
ops.add( bld.build() );
try  getContentResolver().applyBatch( ContactsContract.AUTHORITY, ops );  catch ...

【讨论】:

以上是关于android联系人提供者:如何设置电话号码主要的主要内容,如果未能解决你的问题,请参考以下文章

在android中使用内容提供者获取联系号码

java - 如何使用json中提供的多个联系人数据在java中的android中添加新的电话联系人

如何从 Android 设备中仅获取电话号码联系人

如何获取联系人/电话号码的“提供者”(skype/whatsapp/google)

电话簿设置(即仅联系人过滤器)android 代码示例

阅读联系人时如何在android内容提供商中匹配DISPLAY NAME和Phone.NUMBER