繁体   English   中英

Android 限制下载的文件到应用程序

[英]Android restricting downloaded files to app

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

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

有人可以指出我正确的方向吗? 我所有的搜索都指向用于下载视频的应用程序。

保存应用程序私有的文件

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

此方法还采用类型参数来指定子目录的类型(例如 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

使用 getFilesDir() 会起作用。 从官方 android 文档检查此图像

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM