Phone.IS_PRIMARY没有提供联系的主号码:Android

时间:2013-06-17 05:50:06

标签: android default contact phone-number

我正在尝试在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这两个数字。

我想知道哪个号码已设为默认联系人。

1 个答案:

答案 0 :(得分:1)

尝试将Phone.IS_SUPER_PRIMARY用作per the docs

  

这是否是它所属的聚合联系人的同类主要条目。任何数据记录都是"超级主要"也必须是" primary"。例如,超级主条目可以被解释为其类型的默认联系人值(例如,用于联系人的默认电话号码)。