【发布时间】:2016-10-12 02:05:34
【问题描述】:
我有一个疑问,我阅读这些教程只是为了清楚地了解更高版本的 android How to use the new SD card access API presented for Android 5.0 (Lollipop)?kitkat 中引入的 SAF
How to persist permission in android API 19 (KitKat)?
Android API below 19 equivalent for ContentResolver takePersistableUriPermission
Android Gallery on KitKat returns different Uri for Intent.ACTION_GET_CONTENT
现在我有一个问题,当意图被触发时,我选择了 sd 卡以从我得到的意图中获取 uritree,但是根树是我必须遍历 uri 以获取特定文件 uri . 现在的问题是我的手机中有 mp3 文件,我想编辑选择的特定文件,那么如何从树中获取选定的文件 uri 并进行编辑?我尝试直接使用文件进行编辑,但它使我的 mp3 文件消失,我不想再次触发 SAF 意图 n 那么如何检查用户是否已授予 sd 卡的权限? 附言我正在使用 jaudio tagger 来编辑 mp3 文件的标签。 谢谢!! 我已经得到了这个问题中几乎所有内容的答案现在的问题是,如果我使用 jaudio 标记库来标记将 File 作为对象但 android 4.4 及更高版本不会让你修改 File 对象的 mp3 文件,所以我只想知道替代方法我可以在上面的 4.4 中编辑 File 对象吗?
【问题讨论】:
-
AFAIK jaudio tagger 不接受 documentFile 对象。 “我尝试使用文件直接编辑”是什么意思? File 对象无法编辑可移动存储中的文档。
-
我的意思是这样它会更改标签,但首先它会消失,当我重新启动手机时,它会显示在我的手机中。音频文件 f = AudioFileIO.read(testFile);标记标记 = f.getTag(); tag.setField(FieldKey.ARTIST,"莱昂之王"); f.commit();
-
Reyansh,你有没有搞清楚这件事的真相?我同时使用 jaudiotagger(用于 flac)和 jid3(用于 mp3)面临同样的问题我知道 jid3 在最终同步(写入)mp3 之前实际上创建了一个临时文件。此过程将在外部 sdcard 上失败。
-
是的,我知道了,一旦我完成了正确的代码,我会回答它。就像您需要将外部 sd 卡文件复制到内部存储中,然后对其进行编辑并再次将其放置在您需要稍微处理 DocumentFile 的位置。如果您只想阅读其背后的逻辑,请查看github.com/timusus/Shuttle/tree/dev/app/src/main/java/com/…
标签: android performance android-permissions user-permissions