【发布时间】:2019-07-28 04:33:10
【问题描述】:
我正在将 AWS S3TransferUtilitySample 从 Java 重构为 Kotlin,并在尝试上传图像时遇到异常。在图库意图使用图像 URI 返回我的应用程序之后,我将错误追踪到。在onActivityResult、getContentResolver.query(...) 内是问题所在。
-
Java
cursor = getContentResolver().query(uri, projection, selection, selectionArgs, null);在我的代码中转换为 -
Kotlin
cursor = contentResolver.query(uri, projection, selection, selectionArgs, null)。
此时的query 参数值为:
-
uri:content://media/external/images/media -
projection:{"_data"} -
selection:"_id=?" -
selectionArgs:{"3812"} -
sortOrder:null
我查阅了contentResolver 的文档,我认为我可能错误地解压了查询参数。我看到了this answer,但没有任何帮助。有什么建议吗?
【问题讨论】:
-
我认为在您的图像媒体中没有 id
3812的图像,如果您检查所有媒体已返回以删除projecton、selection、selectionArgs在查询中仅触发带有 @ 的查询987654345@;并检查结果 -
谢谢@AshishPatidar。我认为
3812是从所选图像的路径中正确解析的。我不确定我是否理解你的第二个建议。query(...)方法必须采用这些参数中的每一个,所以我不能只用uri来触发它。如果我有误解,请告诉我。 -
Cursor c1 = contentResolver.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);这是我为联系人运行的示例,仅用于 URI 其他参数为空。
标签: android kotlin aws-amplify