在哪里存储从Android应用程序拍摄的图片

时间:2016-02-26 21:31:09

标签: android android-permissions android-6.0-marshmallow

我正在更新我的应用程序以遵守新的M权限。这(这很好)让我想到了存储媒体的位置,在这种情况下是从我的应用程序中获取的图片。

我正在考虑存储照片的两个选项:

1)存储在" app external"即context.getExternalFilesDir(String type)。

优点:

  • 看起来很好,似乎Android对存储的警告较少 在这里,至少你的应用程序获得自己的空间,而这个空间不是 通常用户在那里存储内容。

  • 对于M来说,它也有很大的好处,我不必要求 写入此文件夹的权限。意思是当用户拿一个 pic我不必要求相机和外部写入权限。

缺点:

  • 媒体扫描程序不会自动扫描文件。
  • 如果需要从设备中提取文件,用户可能更难找到文件。

2)存放在"公共外部"即,背景。 getExternalStoragePublicDirectory(String type)。显然,利弊只是从上面切换。

有了这个似乎正确的'存储照片的地方在app外部。然而,很多常见的'我测试的应用程序,如twitter和facebook选择在公共外部存储媒体。这开始让我相信也许我错过了一些东西。

所以我的问题是这个。关于存储媒体的位置,我有什么不考虑的吗?

1 个答案:

答案 0 :(得分:0)

这取决于。让我解释一下:

  • 首先将数据存储在" app external"如果这些数据非常私密且您不希望其他应用访问它,那么这是一种很好的做法,
  • " app external"在某些情况下不建议使用:
  

因此,您不应将这些目录用于最终属于用户的媒体,例如使用您的应用程序捕获或编辑的照片,或用户使用您的应用程序购买的音乐 - 这些文件应保存在公共目录中(docs)。

  • 你不应该去"公共外部"如果您的应用非常依赖于您要存储的数据(可能会丢失,未安装等)。

我不太了解你的用例,但总的来说我可能会选择混合。