【问题标题】:Android KitKat sdcard write permissionAndroid KitKat sdcard 写入权限
【发布时间】:2015-04-08 11:12:07
【问题描述】:

在 Android KitKat 中,写入 SD 卡有一些限制。

所以我的问题是:即使在 KitKat 中,是否总是允许写信给Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)

【问题讨论】:

  • 没有。在您的清单中请求 INTERNET 权限是的。不过,您提到的外部存储与 SD 卡无关。

标签: android android-4.4-kitkat sd-card android-sdcard


【解决方案1】:

即使在 KitKat 中也总是允许写入 Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) 吗?

如果您的应用请求了WRITE_EXTERNAL_STORAGE 权限,那么可以,因为getExternalStoragePublicDirectory() 指向external storage,这不是removable storage(“SDCard”)在广大的大多数设备。

【讨论】:

    【解决方案2】:

    您首先需要了解Android Storage 的概念。 然后你就会明白Environment.getExternalStorageDirectory() 或类似的东西是关于primary external storage 的。并且与Android APIs 比KitKat 更年轻还是更年长无关。

    【讨论】:

      【解决方案3】:

      要获取您可以使用的内部 SD 卡

      String extStore = System.getenv("EXTERNAL_STORAGE");
      File f_exts = new File(extStore);
      

      要获取可以使用的外部 SD 卡

      String secStore = System.getenv("SECONDARY_STORAGE");
      File f_secs = new File(secStore);
      

      关于运行代码

       extStore = "/storage/emulated/legacy"
       secStore = "/storage/extSdCarcd"
      

      完美运行!

      参考下面的链接,我想你的问题已经回答了,检查一下...

      Android Open External Storage directory(sdcard) for storing file

      【讨论】:

      • 这不保证适用于所有设备。即使他们有 kitkat。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-23
      • 1970-01-01
      • 2012-10-09
      • 1970-01-01
      • 1970-01-01
      • 2016-05-19
      • 1970-01-01
      相关资源
      最近更新 更多