在 Android 11 上使用第三方 SDK 向其他应用分享文件的注意事项

1,575 阅读1分钟

隐私和安全是我们设计 Android 的核心,随着每一个新版本的发布,我们都会加大这一方面的投入。Android 11 也持续在这些领域取得重要进展。

Android 11 (API 级别 30) 进一步增强了平台功能,为外部存储中的应用和用户数据提供了更好的保护。从 Android 11 开始,使用 分区存储模式 的应用即使拥有 READ_EXTERNAL_STORAGE 权限,也无法再访问外部存储中的任何其他应用的 专属目录 中的文件。

受到这一限制的影响,如果您的应用通过第三方 SDK 分享文件 (例如分享照片给另一应用上的好友) 到其他应用,而这只是将自己专属目录中的文件路径传递给目标应用,目标应用将无法读取该文件。部分分享 SDK 可能没有正确处理这种情形,没有显式报错而只是静默失败 (对方用户都没有意识到这次分享),影响开发者和用户的体验。

如果您的应用需要在 Android 11 上向其他应用分享文件,请检查您使用的第三方分享 SDK 是否支持通过 FileProvider 进行分享 (现在大部分常用的第三方分享 SDK 均已支持)。通过 FileProvider,您的应用能够允许第三方应用读取所分享的文件,而不会受到分区存储的限制。