我正在编写一个 Android 应用程序,它将显示每个用户联系人发送的消息数。我已经在我的 Nexus S (Android 4.1.2) 上测试了该应用程序,它按预期工作。现在,前几天我在 Galaxy S Duos (Android 4.0.1) 上测试了同一个应用程序,但我看不到联系方式。我使用的代码如下所示。
public static String SMS_URI_INBOX = "content://sms/inbox";
Uri parsedUri = Uri.parse(SMS_URI_INBOX);
String[] projection = new String[] { "_id", "address", "person" };
Cursor cursor = contentResolver.query(parsedUri, projection, null, null, null);
if (cursor.getCount() > 0) {
String person;
int personIndex = cursor.getColumnIndex("person");
if (cursor.moveToFirst())
do {
// The person will be the foreign key from the Contacts table
person = cursor.getString(personIndex);
if (person != null) {
// Add this person to a list
}
} while (cursor.moveToNext());
}
cursor.close();
在运行 TouchWiz 的三星设备上person = cursor.getString(personIndex);
,我似乎得到了person
null 的值。
我尝试打印出光标的所有值(30 列),但找不到适合该值的其他列名。我知道消息可以映射到联系人,因为消息应用程序证明了这一点。
有没有人遇到过类似的问题以及如何解决?