在android中获取contactId的联系方式?

时间:2013-01-09 13:39:58

标签: android

我使用以下代码使用联系人ID获取android中的联系人详细信息。但是,该代码仅适用于Android设备版本2.3.5而不是2.3.3或以上版本3.以下是我的代码,其中contactId是该特定联系人的ID。执行没有进入if (phone.moveToFirst()) {}部分查询中是否存在问题?如果是这样,为什么它在2.3.5版本上运行良好?任何帮助将不胜感激。谢谢

public String queryAllPhoneNumbersForContact(int contactId) 
{
    String[] projection = new String[] { Phone.NUMBER, Phone.TYPE };

    @SuppressWarnings("deprecation")
    Cursor phone = managedQuery(Phone.CONTENT_URI, 
            projection,
            Data.CONTACT_ID + "=?",
            new String[] { String.valueOf(contactId) }, null);

    if (phone.moveToFirst())
    {
        int contactNumberColumnIndex = phone.getColumnIndex(Phone.NUMBER);
        int contactTypeColumnIndex = phone.getColumnIndex(Phone.TYPE);

        while (!phone.isAfterLast()) 
        {
            String number = phone.getString(contactNumberColumnIndex).trim();
            int type = phone.getInt(contactTypeColumnIndex);

            System.out.println("number" + number);
            System.out.println("Type"   + getString(Phone.getTypeLabelResource(type)));

            phone.moveToNext();
            if ((getString(Phone.getTypeLabelResource(type)).equals("Mobile"))) 
            {
                Log.e("WorkNo. : ", number);
                return number;
            }
        }
    }
    phone.close();
    return null;
}

1 个答案:

答案 0 :(得分:0)

哪些设备完全不起作用?我建议您使用适用于主要版本和设备的2.2版本