我编写了一个访问外部存储上的SQLite数据库的应用程序。该应用程序在我的Nexus 4和模拟器上运行得很好。自从我将手机升级到Android 5后,它不再显示来自SQLite数据库的任何数据。 API 21上的模拟器也不显示数据。
没有抛出任何错误或异常。 API 21上的数据库游标只是空的。
数据库打开如下:
String path = myContext.getExternalFilesDir(null).getAbsolutePath() + File.separator + DB_NAME;
myDataBase = SQLiteDatabase.openDatabase(path, null, SQLiteDatabase.OPEN_READWRITE);
查询执行方式如下:
Cursor cur = myDataBase.rawQuery("SELECT * FROM employee WHERE employee match ? " +
"ORDER BY firstname, lastname LIMIT 100",
new String[] { "*" + queryString+ "*" });
while (cur.moveToNext()) {
persons.add(getPerson(cur)); // never reaches this since API 21
}
cur.close();
从18岁变为21岁?
完整的源代码可以在这里找到:https://github.com/sebastianhaeni/Contacts
答案 0 :(得分:1)
Android 5中的SQLite MATCH与Android中的方式不同< = 4.4
前缀' *'在5.0之前被忽略了。从5.0开始,它会搜索以' *'开头的字符串。通配符只能用作后缀。