从ContactsContract.Profile获取完整的联系人详细信息

时间:2013-09-25 12:55:25

标签: android contacts profile

我希望获取所有者的完整联系方式(我的个人资料 - 例如在Nexus中)。我找到了ContactsContract.Profile API,可用于API v14 +。

我成功获得显示名称,相应的我还需要联系电话。要做到这一切,我正在使用以下代码

private void getSelfSimNumber() {

        String displayName = null;

        try {
            Cursor c = this.getContentResolver().query(
                    ContactsContract.Profile.CONTENT_URI, null, null, null,
                    null);
            int count = c.getCount();
            boolean b = c.moveToFirst();
            int position = c.getPosition();
            if (count == 1 && position == 0) {
                displayName = c.getString(c
                        .getColumnIndex(ContactsContract.Profile.DISPLAY_NAME));
                if (Integer
                        .parseInt(c.getString(c
                                .getColumnIndex(ContactsContract.Profile.HAS_PHONE_NUMBER))) > 0) {

                    Cursor pCur = this.getContentResolver().query(
                            ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                            null,
                            ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME
                                    + " = ?", new String[] { displayName },
                            null);

                    while (pCur.moveToNext()) {
                        String ret = c.getString(0);
                        String ret1 = c.getString(1);
                    }
                    pCur.close();
                }
            }
            c.close();
        } catch (Exception e) {
        }
    }

问题是我无法获取“我”个人资料的联系电话。如果,假设我有3个联系人(包括“我”个人资料),那么我获得的总联系人数仅为2.系统可能不会将“我”个人资料视为联系人。

如何解决此问题并获取“我”个人资料的联系电话?

由于

0 个答案:

没有答案