作为我的问题前置条件,需要注意一些事情。在这种情况下,我不想将文件存储在sd卡上。该文件也不能直接存储在应用程序的本地文件目录中。它需要位于子目录中,因此无法使用openFileOutput()和MODE_WORLD_READABLE来写入文件。
该应用程序可以下载诸如pdf之类的小文件并将其存储在子目录中。如果用户有可以打开这些文件的应用程序,我希望能够让用户打开这些文件。
例如,以下是用于发送pdf的意图:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(path), "application/pdf");
startActivity(intent);
路径类似于:/data/data/packagename/files/subdir/example.pdf
该意图将打开一个PDF浏览器,但是该浏览器无法打开该文件。我认为这是权限问题。我尝试了Mark Murphy在此处的建议:http://groups.google.com/group/android-developers/browse_thread/thread/4e55d869213483a9/b7270078ac1a2744?lnk=raot使用Runtime.getRuntime().exec("chmod 755 " + fileName);
,但没有任何区别。他还建议使用内容提供程序,但如果可能的话,我想避免使用它,因为看起来只是为了将这个文件传递给另一个应用程序而需要很多步骤。
如果内容提供程序是唯一的选择,我是否必须将文件保存到内容提供程序中,或者仅在需要时将其作为内容提供程序通过以获取到另一个应用程序?
谢谢,如果我表达不清楚,请告诉我。