我正在尝试在Android中获取联系人的主要号码但未获得所需的结果。
使用以下代码
cursor = getActivity().getContentResolver().query(Phone.CONTENT_URI, null, Phone.CONTACT_ID + "=?", new String[] { id }, null);
phoneIdx = cursor.getColumnIndex(Phone.DATA);
if (cursor.moveToFirst()) {
while (cursor.isAfterLast() == false) {
String phoneNumber = cursor.getString(phoneIdx);
Log.d(TAG,"Number:::"+ phoneNumber);
int primary = cursor.getColumnIndex(Phone.IS_PRIMARY);
Log.d(TAG, "primary value:::"+ primary);
allNumbers.add(phoneNumber);
cursor.moveToNext();
}
}
我有2个号码的联系人。其中一个设置为主要,长按数字并选择“设为默认值”。当我在所述联系人上运行此代码时,PHONE.IS_PRIMARY将返回45这两个数字。
我想知道哪个号码已设为默认联系人。
答案 0 :(得分:1)
尝试将Phone.IS_SUPER_PRIMARY
用作per the docs
这是否是它所属的聚合联系人的同类主要条目。任何数据记录都是"超级主要"也必须是" primary"。例如,超级主条目可以被解释为其类型的默认联系人值(例如,用于联系人的默认电话号码)。