2016-02-26 45 views
0

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

,我正在考虑用于存储照片的2种选择:

1)在 “应用程序外”,即context.getExternalFilesDir(字符串类型)商店。

优点:

  • 似乎不错的是,似乎Android有大约这里存储 至少你的应用程序都有自己的空间,更少的警告和空间不 通常,用户在存储有内容。

  • 它对M还有一个巨大的好处,我不必要求 写入这个文件夹的权限。这意味着当用户拍摄 图片时,我不必要求相机和外部写入权限。

缺点:

  • 文件是不会自动被媒体扫描仪扫描。
  • 用户可能很难找到文件是否需要从设备中拉出。

2)存储在“公共外部”即上下文中。 getExternalStoragePublicDirectory(字符串类型)。显然,利弊只是从上面切换而来。

因为它看起来像存储照片的'正确'的地方是在外部的应用程序。然而,我测试过的很多'通用'应用程序,比如twitter和facebook选择将媒体存储在公共外部。这开始让我相信也许我错过了一些东西。

所以我的问题是这样的。关于媒体存储的问题,有没有我没有想过的事情?

+0

这似乎是一个非常主观的问题没有离散的答案!我如何制定一个你会接受的答案? :-) –

+0

主要问题是 - 你想拍摄的照片可以通过媒体扫描仪找到,稍后可用于其他应用程序?如果是这样,请使用公共存储。如果没有,请使用应用专用存储。这个问题真的取决于应用程序的作者。 –

+0

@DougStevenson同意:)但我想我会问无论如何,并冒着被羞辱的风险。更重要的是,问题不在于挑选哪一个,而是我错过任何明显的问题。再次可能很难“正确”回答。我道歉。 – lostintranslation

回答

0

这取决于。让我来解释:

  • 在第一存储数据“应用程序外部”是当这个数据是真正的私有一个很好的做法,你不希望其他应用程序来访问它,
  • “外部应用程序”不推荐在某些情况下:

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

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

我真的不知道你的用例,但总的来说,我可能会去混合使用。

相关问题