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

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

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

  • 分区存储模式

    https://developer.android.google.cn/training/data-storage#scoped-storage

  • 专属目录

    https://developer.android.google.cn/training/data-storage/app-specific#external

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

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

  • 请参阅 FileProvider 的开发者文档及相关的示例代码

    https://developer.android.google.cn/reference/kotlin/androidx/core/content/FileProvider

  • 如想了解更多,请参阅我们关于 Android 11 的开发者文档

    https://developer.android.google.cn/about/versions/11/privacy/storage


推荐阅读




 点击屏末  | 即刻访问 Android 11 官方文档


猜你喜欢

转载自blog.csdn.net/jILRvRTrc/article/details/108988668