Java 无法使用联系人ID检索姓名和号码

Java 无法使用联系人ID检索姓名和号码,java,android,Java,Android,我试图使用存储在数据库中的id检索联系人的姓名和号码,但尝试cursor.moveToFirst()时,光标返回false。这是密码- Log.d(TAG, id); Cursor cursor = this.getContentResolver().query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Ph

我试图使用存储在数据库中的id检索联系人的姓名和号码,但尝试
cursor.moveToFirst()
时,光标返回
false
。这是密码-

Log.d(TAG, id);
Cursor cursor = this.getContentResolver().query(
        ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
        null,
        ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?",
        new String[]{id}, null);
if(cursor == null){
    return;
}
while (cursor.moveToFirst())
{
    try{
        number = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
    }catch (NullPointerException e){
        number = "";
    }
    try{
        name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
    }catch (NullPointerException e){
        name = "No name";
    }
}
cursor.close();
注意-ID是正确的。我已经使用日志语句进行了检查

初始化光标后,执行直接跳到
cursor.close()
。在调试和检查时,我发现while语句失败,因为
cursor.moveToFirst()
返回false

moveToFirst()返回false表示没有与ur匹配的数据 查询对于确认检查游标,用于检查数据的getCount()是 有没有