使用电话号码搜索联系人

时间:2012-04-14 10:18:27

标签: android android-contacts

我想检索与传入消息编号关联的联系人姓名。 我想出了以下代码。

Uri lookupUri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(msgSender));
        Cursor c = getContentResolver().query(lookupUri, new String[]{Contacts.DISPLAY_NAME},null,null,null);

        try {
            c.moveToFirst();
            displayName = c.getString(0);
        } catch (Exception e) {
            // TODO: handle exception
        }finally{
            c.close();
        }

问题是,它在模拟器上工作但不能在我的移动设备上工作。我试着重新启动手机。但仍然没有工作。我搜索了与此类似的代码但未在实际手机上工作。

1 个答案:

答案 0 :(得分:0)

您需要将以下代码应用于使用Android版本2.1的Real Mobile

    //String msgSender="Mobile No";
    Uri lookupUri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(msgSender));
    Cursor c = getContentResolver().query(lookupUri, new String[]{ContactsContract.Data.DISPLAY_NAME},null,null,null);
    try {
        c.moveToFirst();
     String  displayName = c.getString(0);
    } catch (Exception e) {
        // TODO: handle exception
    }finally{
        c.close();
    }
在Android 2.1中,我们必须使用ContactsContractPhoneLookup也应该是ContactsContract

请确保您已获得以下许可。

       <uses-permission android:name="android.permission.READ_CONTACTS"/>