gpt4 book ai didi

android - 如何通过 Intent 在另一个应用程序中打开本地应用程序文件?

转载 作者:太空狗 更新时间:2023-10-29 14:33:31 27 4
gpt4 key购买 nike

作为我的问题的序言,有几点需要注意。在这种情况下,我不想将所述文件存储在 SD 卡上。该文件也不能直接存储在应用程序本地文件目录中。它需要在子目录中,因此它不能使用 openFileOutput() 和 MODE_WORLD_READABLE 写入文件。

该应用程序可能会下载 pdf 等小文件,并将它们存储在本地的子目录中。如果用户有可以打开这些文件的应用程序,我希望能够让他们打开这些文件。

例如,这里是发送 pdf 的 Intent :

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(path), "application/pdf");
startActivity(intent);

路径类似于:/data/data/packagename/files/subdir/example.pdf

该 Intent 将打开 pdf 查看器,但查看器无法打开该文件。我认为这是一个权限问题。我在这里尝试了 Mark Murphy 的建议:http://groups.google.com/group/android-developers/browse_thread/thread/4e55d869213483a9/b7270078ac1a2744?lnk=raot使用 Runtime.getRuntime().exec("chmod 755 "+ fileName); 但它没有任何区别。他还建议使用 Content Provider,但如果可以的话,我想避免使用它,因为将此文件转移到另一个应用程序似乎很麻烦。

如果内容提供者是唯一的选择,我是否必须将文件保存到内容提供者,或者我是否可以仅使用内容提供者作为传递,以便在我需要时将其传送到其他应用程序?

谢谢,如果我不清楚,请告诉我。

最佳答案

我还尝试了您提到的所有选项(以及更多选项),内容提供商是唯一适合我的方法。我不太确定“将文件保存到内容提供者”是什么意思,但实际上您不需要数据库中的任何内容来让提供者将文件提供给其他应用程序。

关于android - 如何通过 Intent 在另一个应用程序中打开本地应用程序文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4120618/

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