数日前,我收到了google关于android应用更新的通知。邮件内容大意如下:
尊敬的开发者:
Google 决定您应用中使用旧版API打开文件选择对话框的方式已过时且不安全。 我们已设定更新截止日期,现已过期。虽然您可以申请延期,但我们强烈建议您尽快迁移至新的兼容性API。
旧版方法:
final ActivityResultLauncherlaunch_picker = this.registerForActivityResult( new ActivityResultContracts.GetContent(), uri -> { if ( uri != null ) { // 处理uri } });
启动方式:
String intentTypeStr = "image/*"; this.launch_picker.launch( intentTypeStr );
新版方法:
ActivityResultLauncherpickMedia = this.registerForActivityResult(new PickVisualMedia(), uri -> { if ( uri != null ) { // 处理uri } });
启动方式:

pickMedia.launch(new PickVisualMediaRequest.Builder()
.setMediaType(PickVisualMedia.ImageOnly.INSTANCE)
.build());
虽然Google 提到安全问题,但旧版API在结合其他安全机制后,多年来一直运行良好。 新API只是对现有功能的替代,且操作更繁琐。 Google 的做法令人费解,尤其是在文档中直接推荐过时API后又强制更新。 这体现了Google 对开发者缺乏应有的尊重。
我的疑问在于:为什么Google 不直接在文档中推荐新的API,而是选择先推荐旧的,然后再宣布其过时? 这给开发者带来了不必要的麻烦。
最终,我们只能适应并更新应用。










