# 快速上手

# 组织文件的方式

对于照片、图片、下载的文件等用户文件,Android 系统建议将它们存放至 共享文件夹

全部共享文件夹
  • Alarms(闹铃)
  • Pictures(图片)
  • DCIM(相机)
  • Documents(文档)
  • Download(下载)
  • Movies(影片)
  • Music(音乐)
  • Notifications(通知音)
  • Ringtones(铃声)

以最常用的 Pictures 为例,通行的做法是,每个应用各自在其中建立自己的文件夹。比如 Twitter 保存图片至 Pictures/Twitter

我们的建议是,按照上面的方式组织各个应用保存的文件。

# 清理已有文件(首次使用)

如果你受到如同下面的例子一样的问题的困扰,如果你不确定其中是否有重要文件,我们建议你采取如下步骤。

例子:存储空间中有大量未知的文件夹
例子
  1. 建立一个新的文件夹并将所有除了 标准文件夹 〔1〕以外的文件夹都移动进来
  2. 在该文件夹中建立一个名为 .nomedia 的文件以避免其中的媒体文件还可以被扫描
  3. 做好所有设定并找出其中重要的文件后,删除该文件夹

〔1〕 标准文件夹:Android Alarms DCIM Documents Download Movies Music Notifications Pictures Ringtones

# 如何正确设置隔离

在启用隔离后,你需要检查 可访问的文件夹导出被隔离的文件 选项。

# 可访问的文件夹

启用隔离后,应用可以读取及写入的文件夹需要你来设定。它分为两个部分。

  • 共享文件夹

    大部分时候需要设置的选项。比如,如果你希望应用可以使用你的照片,你就需要选择 DCIM

    注意,我们只推荐将有限的文件夹设置为可访问,否则隔离将没有意义。

  • 其他应用的文件夹

    少数情况才需要使用的选项,具体请参阅下文

    对新手我们的建议是在 导入在线规则 中选择自己需要的部分,如果仍有问题再尝试自己编写规则。

# 导出被隔离的文件

如果应用保存重要的文件到 可访问的文件夹 以外的文件夹,那些文件就是被隔离的。你需要使用这个功能来导出这些文件。

对新手我们的建议是在 导入在线规则 中选择自己需要的部分,如果仍有问题再尝试自己编写规则。

注意,我们只推荐导出用户文件(由用户发起的保存文件操作,如保存图片、下载文件等操作),导出应用的私有数据文件是没有必要且违反使用隔离的目的。

例子

WeChat 保存图片至 tencent/MicroMsg/WeChat。需要建立一个从 tencent/MicroMsg/WeChatPictures/WeChat 的规则。

# 使用增强模式

增强模式是一个非常重要的组成部分,许多问题在使用增强模式的情况下才可以解决。

我们建议,当你确认一切正常后就开始尝试增强模式(在应用内可以看到如何使用增强模式)。

# 如何解决涉及多个应用的问题

注意,这种问题只会出现在使用旧式做法的劣质应用上。

首先你需要了解为什么会产生问题。

当启用隔离后,被隔离的应用可见的存储空间产生变化。

比如应用 com.example 尝试保存 1.txt 到 test/1.txt,实际上文件会被保存到 Android/data/com.example/sdcard/test/1.txt。但应用自身认为文件位于 test/1.txt,因此应用如果直接传递路径 test/1.txt 给其他应用(这种做法在 Android 4.4 后就应该被抛弃),因为此处根本没有文件存在,其他应用显然无法在 test/1.txt 找到文件。

要解决这样的问题,首先你可以启用“增强模式”中的“修复应用间交互”,这会解决使用 Android 系统标准的打开文件方式的问题。

如果仍有问题,你就需要拿起“武器”——“文件监视”(需要增强模式)。通过“文件监视”功能,你可以知道应用尝试访问了何处的文件,通常只需要在 可访问的文件夹 - 其他应用的文件夹 中建立相应的规则即可解决问题。

例子

QQInput 有发送图片到 QQ 的功能,启用隔离后该功能无法工作。在“文件监视”中你可以看到 QQ 和 QQInput 都在使用 Tencent/QQInput/Exp/Temp。需要建立一个共享 QQInput 的 Tencent/QQInput/Exp/Temp 到 QQ 的规则。

* 开发者个人并不使用 QQInput,例子只是根据其他用户提供的规则编写。

# 涉及 Xposed 模块

一些 Xposed 模块直接建立文件来保存配置。你需要了解,为 Xposed 模块启用隔离实际只是为修改配置的界面启用了隔离,Xposed 模块实际会在其注入的应用中运行。

例子

一个名为 MDWeChat 的修改 WeChat 的模块会建立 mdwechat 文件夹用于保存设定。在为 MDWeChat 启用隔离后,mdwechat 被保存于 MDWeChat 的隔离存储空间。而 WeChat 的隔离存储空间中并不包含 mdwechat 文件夹,因此结果一定是“模块失效”。需要建立一个共享 MDWeChat 的 mdwechat 文件夹至 WeChat 的规则。

* 开发者个人并不使用 Xposed,例子只是根据其他用户提供的规则编写。