android Q

时间:2019-11-04 05:27:16

标签: android

我正在使用像素电话android 10(Q)版本,试图获取媒体文件名和分组。我收到一些错误“ Android 10中的无效的列下(substr(displayname,1,1))”。它仅在android 10版本中发生,下面的版本运行正常。

代码

字符串选择= selectionArgs.first;

projection = {“ lower(substr(” + MediaStore.MediaColumns.DISPLAY_NAME +“,1,1))”,MediaStore.MediaColumns.DISPLAY_NAME,“ COUNT(*)AS COUNT”};

String queryKey =“ lower(substr(” + MediaStore.MediaColumns.DISPLAY_NAME +“,1,1))”;

选择+ =“)GROUP BY(” + queryKey;

cursor = contentResolver.query(uri,                     投影,                     选择                     selectionArgs.second,                     null);

错误

无效的列下限(substr(displayname,1,1))

1 个答案:

答案 0 :(得分:0)

从Android Q开始,在投影中不再允许

SQL关键字。看看这个问题:

https://issuetracker.google.com/issues/130965914

使用仅请求一列然后使用Cursor.getCount()的组合可能会有所帮助,尽管我没有尝试过。我希望您在执行此操作时可能需要处理新的RecoverableSecurityException