0

假设我在内部文件系统上有文件名1234567.png - 假设我想将其发送给用户并共享intentCoolPicture.png - 即子类 fileprovider 并替换查询方法。

使用基于超级光标的矩阵光标是一个好计划吗?

似乎DISPLAY_NAME并且SIZE是唯一的列,但似乎无法确认SIZE是 int 还是 string。

我将计划在回答后发布我的代码,我只是想了解最佳实践,并可能做出贡献。谢谢

4

2 回答 2

1

使用基于超级光标的矩阵光标是一个好计划吗?

你可以这样做,而且可能没问题。毕竟,FileProvider它本身使用一个MatrixCursor.

要修改现有的,我在Cursor的 中使用CursorWrapper我自己,然后将我从包装器中的基本实现(例如)中获得的包装器中。LegacyCompatCursorWrapperquery()CursorContentProviderFileProvider

似乎 DISPLAY_NAME 和 SIZE 是唯一的列,但似乎无法确认 SIZE 是 int 还是 string。

这就是我选择 的原因之一CursorWrapper,以避免弄乱任何现有的值。

话虽如此,现有的FileProvider实现使用Long( file.length(),自动装箱)。

于 2016-02-15T18:00:48.370 回答
0

这是一个老问题,但新的androidx.core.content.FileProvider现在有第二种getUriForFile方法,它带有一个附加displayName参数,用于设置OpenableColumns#DISPLAY_NAME键列的值。

于 2022-01-23T14:00:40.613 回答