我已经实现了一个自定义的SQLite数据库帮助器。我有一个包含短信的表。我在这个表中查询特定电话号码的条目,如下所示:
public Cursor getSmsForContact(String phoneNumber) throws SQLException {
phoneNumber = PhoneNumberUtils.stripSeparators(phoneNumber);
Cursor cursor =
db.query(DATABASE_TABLE, new String[] {
KEY_DATE,
KEY_BODY,
KEY_CONTACT,
KEY_TYPE,
KEY_ROWID,
KEY_MESSAGE_STATE
}, KEY_CONTACT + "=" + phoneNumber, null, null, null, null);
return cursor;
}
此方法适用于前面没有“+”的数字(表示国家/地区代码)。但是,当phoneNumber
在前面有“+”时,它总是返回一个空光标。我已经确认PhoneNumberUtils.stripSeparators()
方法没有删除“+”符号。我还验证了表中存在的行与正在查询的电话号码相匹配。
谢谢!
答案 0 :(得分:1)
尝试
}, KEY_CONTACT + "= ?" , new String[] {phoneNumber}, null, null, null);
电话号码被解释为一个数字;你希望它被解释为一个字符串