0

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

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();
        }

问题是,它可以在模拟器上运行,但不能在我的移动设备上运行。我尝试重新启动我的手机。但仍然无法正常工作。我搜索了与此类似的代码,但不适用于实际手机。

4

1 回答 1

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 中我们必须使用ContactsContract并且也PhoneLookup应该是ContactsContract.

确保您已授予以下权限。

       <uses-permission android:name="android.permission.READ_CONTACTS"/>
于 2012-04-14T10:45:38.407 回答