0

我希望能够编辑存储在应用程序内部存储器中的文件,该文件可通过Context.getDir()使用任何可用的外部文本编辑器通过Intent.ACTION_VIEW以类型"text/plain"和文件 URI 作为参数启动。虽然外部编辑器可以很好地处理 sdcard 上的文件,但他们无法访问Context.getDir()下的文件。

我正在调用getDir()Context.getDir("data", Context.MODE_WORLD_WRITEABLE)但在通过意图将 URI 传递给外部编辑器时仍然出现访问被拒绝错误。

根据传递给的文档MODE_WORLD_WRITEABLEgetDir()应该足以让其他应用程序访问和修改文件,但情况似乎并非如此。还是我错过了什么?

所以问题是如何让其他应用程序修改特定文件/data/data/app.package/而不在sdcard上创建文件副本或诉诸root超级权力?

4

1 回答 1

1

您可以创建自己的 API 来实现这一点。

例如,您创建自己的库并将访问您的内部文件,而其他应用程序将访问该库。您甚至可以使用广播接收器或其他您认为合适的方式来实现此目的。

或者,您也可以为此设计一个内容提供者。

另一种方法是,如果您使用这些命令创建文件,Context.getExternalCacheDir() 或者Context.getExternalFilesDir(type),文件将在 SD 卡上创建,您将能够使用直接路径访问该文件。

于 2013-03-28T21:25:07.797 回答