我想检索与传入消息编号关联的联系人姓名。 我想出了以下代码。
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();
}
问题是,它在模拟器上工作但不能在我的移动设备上工作。我试着重新启动手机。但仍然没有工作。我搜索了与此类似的代码但未在实际手机上工作。
答案 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中,我们必须使用ContactsContract
,PhoneLookup
也应该是ContactsContract
。
请确保您已获得以下许可。
<uses-permission android:name="android.permission.READ_CONTACTS"/>