我想知道在 android 中是否可以从我的 android 应用程序创建符号链接,因为我想使用 /sdcard 创建我的应用程序的文件夹/数据的符号链接。我不是 android 方面的专家,但我通常使用 Java.nio.File.Files 类在 java 中执行此操作,但在 android 中不允许此类,我知道在 android 中有一种方法是使用 api 21 与Os.symlink()方法,但这是针对android 5.0的,我需要它用于最低的android 4.0或4.1以上。如果您知道任何方法请告诉我,非常感谢。
在 Android Q 之前,如果我们想要获取有关 APK 文件的信息,我们可以使用WRITE_EXTERNAL_STORAGE和READ_EXTERNAL_STORAGE来访问存储,然后在文件路径上使用PackageManager.getPackageArchiveInfo函数。
类似的情况也存在,例如在压缩文件上使用ZipFile 类,可能还有无数的框架 API 和第三方库。
谷歌最近宣布了对 Android Q 的大量限制。
其中之一称为“范围存储”,当访问设备拥有的所有文件时,它会破坏存储权限。它可以让您处理媒体文件,或者使用非常受限的存储访问框架 ( SAF ),该框架不允许应用程序使用文件 API 和文件路径访问和使用文件。
当Android Q Beta 2发布时,它破坏了很多应用程序,包括谷歌的应用程序。原因是它默认打开,影响所有应用程序,无论它们是否针对 Android Q。
原因是许多应用程序、SDK 和 Android 框架本身 - 都经常使用文件 API。在许多情况下,它们也不支持 InputStream 或 SAF 相关的解决方案。一个例子就是我写的 APK 解析示例 (PackageManager.getPackageArchiveInfo)。
然而,在 Q beta 3 上,情况发生了一些变化,因此目标 Q 的应用程序将具有范围存储,并且有一个标志可以禁用它,但仍然像往常一样使用正常的存储权限和文件 API。遗憾的是,该标志只是暂时的(请阅读此处),因此它推迟了不可避免的事情。
我已经尝试并发现了接下来的事情:
android file storage-access-framework android-10.0 scoped-storage
我似乎无法找到这个具体问题的可靠答案.
我正在尝试以编程方式在同一应用程序的资产目录中的另一个位置的资产文件夹中创建一个目录的符号链接.基本上,我希望做与Java.nio.Files的createSymbolicLink方法相同的事情.
有没有可用的方法来使用Android SDK?如果没有,NDK有可能吗?