【问题标题】:Android getDir() with MODE_WORLD_WRITEABLE does not work带有 MODE_WORLD_WRITEABLE 的 Android getDir() 不起作用
【发布时间】:2013-03-28 20:57:31
【问题描述】:

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

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

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

那么问题是如何让其他应用修改/data/data/app.package/下的特定文件而不在sdcard上创建文件副本或诉诸root超能力?

【问题讨论】:

    标签: android internal file-access


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 我的问题主要是关于为什么MODE_WORLD_WRITEABLE 不能按预期工作。
    猜你喜欢
    • 1970-01-01
    • 2014-01-06
    • 1970-01-01
    • 1970-01-01
    • 2013-05-27
    • 2016-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多