作为mentioned,Android资产不能通过设备文件系统中的绝对路径访问,所以每当你必须提供一个方法的文件系统路径时,你就不走运了。 但是,在您的情况下,还有其他选项: 我想使用Web服务器提供文件,它需要绝对路径。 只有当你想用web服务器提供的默认机制将文件作为静态文件时,才需要绝对路径。但是web服务器要灵活得多:您可以将URL中的任何路径Map到您可以访问的任何数据源:文件,数据库,网络资源,安卓资源,安卓资产。如何做到这一点取决于你使用的网络服务器。 例如,您可以自行定义任何以https://example.com/assets/开头的URL都应Map到Android APK的assets文件夹,然后可以将内容open the asset as an InputStream并提供给Web服务器的客户端。
4条答案
按热度按时间2fjabf4q1#
这可能吗?
不会。没有"[您的]应用中的资产文件夹的绝对路径"。资产存储在APK文件中。
在某些情况下,例如提供给
WebView
的URL,您可以使用特殊的file:///android_asset
基本URL来引用资源中的文件。cedebl8k2#
您始终可以将文件从APK中的assets目录复制到设备上的文件夹,然后提供该文件夹。
u59ebvdq3#
作为mentioned,Android资产不能通过设备文件系统中的绝对路径访问,所以每当你必须提供一个方法的文件系统路径时,你就不走运了。
但是,在您的情况下,还有其他选项:
我想使用Web服务器提供文件,它需要绝对路径。
只有当你想用web服务器提供的默认机制将文件作为静态文件时,才需要绝对路径。但是web服务器要灵活得多:您可以将URL中的任何路径Map到您可以访问的任何数据源:文件,数据库,网络资源,安卓资源,安卓资产。如何做到这一点取决于你使用的网络服务器。
例如,您可以自行定义任何以
https://example.com/assets/
开头的URL都应Map到Android APK的assets文件夹,然后可以将内容open the asset as anInputStream
并提供给Web服务器的客户端。7gs2gvoe4#
如果您有任何资产,如PDF文件存储在资产文件夹内,然后使用下面的行获取其路径: