问题标签 [storage-access-framework]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
28010 浏览

android - 使用 SAF(存储访问框架)的 Android SD 卡写入权限

经过大量关于如何在 SD 卡(android 5 及更高版本)中写入(和重命名)文件的发现后,我认为 android 提供的新 SAF 将需要获得用户的权限才能写入 SD 卡文件。

我在这个文件管理器应用程序ES 文件资源管理器中看到,最初它通过以下方式获取读写权限,如图所示。

在此处输入图像描述

图二

选择sd卡后,授予写权限。

因此,我以同样的方式尝试使用 SAF,但重命名文件失败。我的代码:

仍然在运行代码后,我得到 EAacces 权限被拒绝。

0 投票
4 回答
3451 浏览

android - 将文件 PATH 转换为 TreeUri(存储访问框架)

在我的图片库应用程序中,我使用媒体内容提供商图片来膨胀回收站视图。长按图像时,我会为用户提供重命名该图像文件的选项。所以我在回收站视图中为每个图像都有完整的文件路径(例如:- /storage/sdcard1/DCIM/100ANDRO/ak.jpg )。然后我想重命名那个文件。

现在的问题是,由于提供的文件路径是外部 SD 卡的路径,并且对于 Android 5 及更高版本,需要 SAF(存储访问框架)来写入文件。

因此,通常我们使用此代码使用 SAF 重命名文件:-

但是当我们知道 TreeUri 时就是这种情况。在我的情况下,我知道文件路径,因此想将其转换为 TreeUri。

0 投票
1 回答
434 浏览

android-6.0-marshmallow - 为什么自 Android 6 起我无法使用 SAF 删除位于 USB 密钥上的文件?

我使用 SAF 访问 USB 密钥上的文件。从 Android 6 开始,无法通过对象 FileDocument 的 delete 方法删除文件。为什么 ?

0 投票
1 回答
2119 浏览

android - 使用 SAF 访问 Google 驱动器时如何刷新内容

我正在尝试使用以下代码从我的应用程序中的 Google 驱动器访问 PDF 文件:

直接取自谷歌的文档。我可以让文件选择器出现。但是有2个问题:

  1. 无法刷新文件选择器的内容。
  2. 在我转到实际的 Google Drive 应用程序并在那里执行刷新之前,不会出现新添加到 Google Drive 帐户的文件。

我想知道我的实现中是否缺少某些东西。我试图在网上搜索,但令人惊讶的是没有发现任何相关内容。更令人惊讶的是,我在 gmail 应用程序上遇到了同样的问题。

提前致谢。

0 投票
0 回答
166 浏览

android - 如何随机访问外部驱动器上的 Android SAF 框架返回的流?

我在扩展驱动器(或 USB 驱动器)上有一个大文件可以直接从那里打开,它大约 1GB,所以我不能使用 BufferedStream。是否可以随机访问 SAF(Android 存储访问框架)返回的这个流?请注意,我想在流中间写入一些字节。

我已经写了以下内容,是我做错了什么还是不可能。

我正在使用 Android API 级别 21(棒棒糖)

0 投票
2 回答
290 浏览

android - FileOutputStream 异常 EACCES 权限被拒绝

我在论坛中尝试了许多解决方案,但它们似乎不起作用。我需要在我的手机中创建一个 pdf (Environment.getExternalStorageState() +File.separator +"Try" +File.separator +"FirstPdf.pdf";) 但我有一个例外。我在清单中使用verifyStoragePermissions(this)和。 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

0 投票
2 回答
2609 浏览

android - SAF DocumentFile - 检查路径是否存在而不在每个文件夹级别创建每个 DocumentFile

成像,您想检查“/folder/subfolder/subsubfolder/test/test.txt”文件是否存在,您可以执行以下操作:

这很慢,有没有更快的方法至少检查 SD 卡上是否存在文件?我不想创建每个DocumentFile只是为了检查路径是否存在......

0 投票
1 回答
1634 浏览

java - 无法在android中将uri转换为位图

我正在尝试将谷歌文档转换为位图,以便可以在其中执行 OCR。然而,我得到了错误:

E/BitmapFactory:无法解码流:java.io.FileNotFoundException:/document/acc=4;doc=14882:打开失败:ENOENT(没有这样的文件或目录)

E/ReadFile:位图必须为非空

E/CropTest: 读取位图失败

代码:

0 投票
0 回答
50 浏览

android - 如何使使用 Storage Access Framework 打开的文档出现在“最近”中?

我打电话createChooser()ACTION_GET_CONTENT。如何使此文档出现在 SAF 选择器的“最近”列表中?该文档仅在创建文档的上下文中提及最近列表。我希望在我的应用程序中打开的文件(在另一个应用程序中创建)出现在这里。

0 投票
1 回答
1122 浏览

android - Can't access Sd Card after providing permission with Storage Access Framework

I'm trying to provide sd card access inside my app with Storage Access Framework.

This is how I call an intent to let the user choose the sd card directory.

And this is how I manage the intent result to set permissions:

But still can't save any file on sd card.

Value of treeUri on my device is:

content://com.android.externalstorage.documents/tree/6921-B9FD%3A

What I missed here that system still couldn't let the user have access to sd card(saving a simple file on sd card)?