我这样做主要是因为下载的文件不会被用户访问,因为如果它存储在 sdcard 或内部存储器中,他们可以访问它。
首先,“内部存储器”是“应用程序数据空间”,假设“应用程序数据空间”是指文件存储而不是 RAM。Android 中只有两个地方可以写入:内部存储和外部存储。
其次,想要访问您的文件的用户甚至可以在内部存储上访问您的文件,例如通过 root 他们的设备。
所以我的问题是,当用户通过任何第三方应用程序点击文件时,我想打开文件。下载文件时,它会弹出打开或不打开。如果点击打开,则它应该由其他一些第 3 方应用程序打开。例如,如果我下载 abc.doc,那么它应该要求我通过各种阅读器打开。
您可以选择在MODE_WORLD_READABLE
创建文件时使用openFileOutput()
. 这可能允许某些第三方应用程序访问该文件。或者,您可以实现 aContentProvider
来提供此文件。其中任何一个都将允许用户访问文件(例如,通过这些查看器应用程序中的“共享”选项),这与您的原始目标背道而驰。
如果您的应用程序是查看(或以其他方式使用)该文件的应用程序,则您可以获得用户无法访问的文件(除非通过您的应用程序)的唯一方法。而且,正如我上面提到的,即使有根设备所有者仍然可以选择访问该文件。