Android将下载的文件限制为应用

时间:2014-08-06 21:17:47

标签: java android

我正在构建的应用程序用于播放视频,但它需要能够下载视频,以便在用户未连接到互联网时观看视频。

每当我的手机下载文件时,它都会进入手机的下载文件夹,但我希望只能从应用程序访问下载的文件。

有人能指出我正确的方向吗?我的所有搜索都会导致用于下载视频的应用。

2 个答案:

答案 0 :(得分:0)

保存app-private文件

如果您正在处理不适合其他应用程序使用的文件(例如仅由您的应用程序使用的图形纹理或声音效果),则应通过调用getExternalFilesDir()在外部存储上使用专用存储目录。

此方法还使用type参数指定子目录的类型(例如DIRECTORY_MOVIES)。如果您不需要特定的媒体目录,请传递null以接收应用程序私人目录的根目录。

从Android 4.4开始,在应用程序的私人目录中读取或写入文件不需要READ_EXTERNAL_STORAGE或WRITE_EXTERNAL_STORAGE权限。因此,您可以通过添加maxSdkVersion属性来声明仅在较低版本的Android上请求权限:

<manifest ...>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
                 android:maxSdkVersion="18" />
...
</manifest>

注意:当用户卸载您的应用程序时,将删除此目录及其所有内容。此外,系统介质扫描程序不读取这些目录中的文件,因此无法从MediaStore内容提供程序访问它们。因此,您不应将这些目录用于最终属于用户的媒体,例如使用您的应用程序捕获或编辑的照片,或用户使用您的应用程序购买的音乐 - 这些文件应保存在公共目录中。

参考:http://developer.android.com/guide/topics/data/data-storage.html#filesExternal

答案 1 :(得分:0)

使用getFilesDir()即可。Check this image from official android docs

但是使用getExternalFilesDir文件仍然可以通过android-> package_name_folder中的文件管理器进行访问,通过使用getFilesDir,我们无法从外部(包括文件管理器)访问这些文件。