2

我试图在 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。

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

4

1 回答 1

1

尝试Phone.IS_SUPER_PRIMARY按照文档使用

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

于 2015-09-20T03:12:51.007 回答