gpt4 book ai didi

Android 10 如何在所有应用程序都可以访问的文件管理器中创建文件/文件夹

转载 作者:行者123 更新时间:2023-12-04 11:48:05 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Can't create directory in Android 10

(7 个回答)


2年前关闭。




我正在使用以下代码在存储中创建目录/文件。

   File file  = new File(Environment.getExternalStorageDirectory().toString(), "/MyDirectory");

在 android 10 中更新目标 SDK 版本 29 后,它无法正常工作。

谁能建议如何在应用程序范围之外创建一个文件夹?

最佳答案

对于 Android 版本 10:

https://stackoverflow.com/a/58379655/3811983

对于 Android 10 以下的 Android 版本:
(包括这里,因为没有人只为 Android 10 开发。这将使其成为任何希望在其应用程序中包含此功能的人的完整答案)

以下是我遵循并为我工作的步骤:

  • 在应用的 AndroidManifest.xml 文件中包含以下权限:

  • <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  • 由于 WRITE_EXTERNAL_STORAGE 是危险权限,所以在应用运行时,检查应用是否有这个权限,如果没有,请求用户授予它。

  • Doc1
    Doc2
    AirPermissions (简化 Android 运行时权限的轻量级库)
  • 检查外部存储是否存在以及应用程序是否可以对其进行读写
  • if (Environment.getExternalStorageState() == Environment.MEDIA_MOUNTED) {
    // further code here
    }
  • 如果一切正常,您可以继续创建您的公共(public)目录:
  • val rootFile = android.os.Environment.getExternalStorageDirectory()
    val appRootFolder = File(rootFile.absolutePath + "/MyDirectory")
    if (appRootFolder.exists() && appRootFolder.isDirectory) {
    // proceed
    } else {
    val wasAppRootFolderCreated = appRootFolder.mkdirs()
    if (wasAppRootFolderCreated) {
    // proceed
    } else {
    // error: could not create the folder
    }
    }

    关于Android 10 如何在所有应用程序都可以访问的文件管理器中创建文件/文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58392118/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com