我想从我的应用程序链接到我的 Android 设备中的本地文件。只需从浏览器中使用 file:// 打开它即可。这在 Android 中是否可行,如果可以,我需要放置什么路径,只是尝试 file:// 不会在 chrome 浏览器中显示任何内容。
5 回答
这在Android中可能吗
这将取决于浏览器。
如果是这样,我需要放置的路径是什么
您可以使用file://
指向世界可读文件的 URL。
只是尝试 file:// 不会在 chrome 浏览器中显示任何内容
您需要遵循file://
世界可读文件的路径。由于您的网站可能不知道这条路径是什么,因此我不知道您希望如何设置此链接。
但是,例如,假设您的设备的外部存储位于/mnt/sdcard/
,并且您在其中有一个名为 的文件foo.txt
,您可以输入file:///mnt/sdcard/foo.txt
以在 Chrome 中显示它。
我从 Yahoo 邮箱下载的文件存储在 /storage/emulated/0/Download 中。我用termux证实了这一点。此目录中的文件可以被称为 file:///storage/emulated/0/Download/file.ext 或被 chrome 浏览器称为 file:///sdcard/Download/file.ext。这些 URL 均不适用于 Firefox 浏览器(版本 61.0)。Firefox 似乎是为通过工具访问下载而设计的 | 下载但可能只有浏览器下载的文件。回到 chrome,更一般的情况下,我可以转到 file:///sdcard 并查看许多文件和目录。作为替代方案,您可以通过设置网络服务器来解决文件权限问题。如果您是程序员,一种方法是安装 node.js(和 termux)并使用 express 编写 HTTP 服务器。这当然会被解决为http://localhost:8080/file.ext,假设配置为监听 8080 端口。
另一个流行的路径是
/storage/emulated/0/
所以下载目录中索引文件的路径是
file:///storage/emulated/0/Downloads/index.html
如何轻松确定本地路径?使用默认图像查看器打开本地存储的图像,在上下文菜单中选择图像详细信息。这将包括给定系统上的绝对路径。
file:///path/to/foo.txt
会给你文件的url路径。确保文件是世界可读的。
如果您尝试在您的应用程序中访问文件,请确保您有权限READ_EXTERNAL_STORAGE
。在 API 版本 23 以上,您必须明确向用户请求存储权限。此链接详细说明了如何执行此操作。
file:///sdcard/ 有效,但它只显示内部存储器