gpt4 book ai didi

android - 在内部存储中保存公共(public)文件

转载 作者:可可西里 更新时间:2023-11-01 18:59:21 27 4
gpt4 key购买 nike

我有一个应用程序可以保存从服务器下载的文件。这些文件不是我的应用程序私有(private)的,其他应用程序也应该可以访问这些文件。我想知道当 SD 卡不存在时保存这些文件的正确路径是什么。对于 SD 卡,有众所周知的 API -

getExternalStorageDirectory()

对于内存中应用程序的私有(private)数据,有-

Context.getFilesDir()

在某些设备上,内部存储器由/emmc/表示。

如果有人能详细说明/emmc/,那将非常有帮助。我知道它代表嵌入式存储卡,并不存在于所有设备中。但它真的代表内存吗?还是第三内存?

我应该使用 openFileOutput()MODE_WORLD_READABLE 来保存文件吗?

最佳答案

我意识到这是旧的并且有一个公认的答案,但我认为这个问题仍然相关并且有一种方法可以实现提问者想要的。

换句话说,我相信提问者想要保存一个文件,并使其可以被其他应用程序访问(例如用于查看),而不必考虑外部存储(例如额外的权限和外部存储不可用的可能性)现在)。

事实证明,您可以让其他应用程序读取您自己的文件。

File file = new File( ctx.getCacheDir(), "picture" );               
...
file.setReadable( true, false );
// makes file readable to other apps

// Get another app to view my picture
Uri uri = Uri.fromFile(file);
Intent intent = new Intent( Intent.ACTION_VIEW );
intent.setDataAndType( uri, "image/*" );
ctx.startActivity( intent );

setReadable 使上面的代码对我有用——没有那一行,查看器应用程序无法读取文件。请注意,setReadable 对整个目录进行操作,因此最好的解决方案可能是创建一个名为“public”的子目录并将您的文件放在那里。

关于android - 在内部存储中保存公共(public)文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5764562/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com