1

一年前我做了一个应用程序,我使用此代码将页面下载到本地文件,然后在浏览器意图中打开它:

FileOutputStream fos = openFileOutput("summary.html", Context.MODE_PRIVATE);
fos.write(msg.obj.toString().getBytes());
fos.close();
Intent i = new Intent(Intent.ACTION_VIEW);
i.setDataAndType(Uri.fromFile(getFileStreamPath("summary.html")),"text/html");
startActivity(i);

它在当时奏效了。现在我不得不再次拿起应用程序,这不再有效。在浏览器意图窗口中,我得到一个

网页不可用
文件://....的网页无法加载(等)

我仍在使用与一开始 (2.1) 相同的 android 版本运行,因此它与部署的操作系统版本无关。但是从那以后SDK已经更新了,也许有些改变了?

如果我从MODE_PRIVATE切换到MODE_WORLD_READABLE它可以工作,但意图不是以与调用应用程序相同的用户 ID 运行吗?

关于如何执行此操作并将文件保存在MODE_PRIVATE中的任何选项?

以及有关发生这种情况可能发生的变化的任何信息?我用谷歌搜索并没有发现任何东西......

4

1 回答 1

0

它在当时有效

我觉得这很难相信。

但是从那以后SDK已经更新了,也许有些改变了?

不,应用程序始终在自己的进程中运行,具有自己的用户 ID,因此没有其他应用程序可以访问您的MODE_PRIVATE文件。

如果我从 MODE_PRIVATE 切换到 MODE_WORLD_READABLE 它可以工作,但意图不是以与调用应用程序相同的用户 ID 运行吗?

不,对于您的短语“意图运行”的任何可能定义。每个应用程序都在自己的进程中运行,在自己的用户 ID 下。

关于如何执行此操作并将文件保存在 MODE_PRIVATE 中的任何选项?

自己显示在WebView.

于 2012-11-04T22:08:44.097 回答