亲爱的Android开发人员

数日前,我收到了google关于android应用更新的通知。邮件内容大意如下:

尊敬的开发者:

Google 决定您应用中使用旧版API打开文件选择对话框的方式已过时且不安全。 我们已设定更新截止日期,现已过期。虽然您可以申请延期,但我们强烈建议您尽快迁移至新的兼容性API。

旧版方法:

final ActivityResultLauncher launch_picker =
    this.registerForActivityResult(
        new ActivityResultContracts.GetContent(), 
            uri -> {
                if ( uri != null ) {
                    // 处理uri
                }
            });

启动方式:

String intentTypeStr = "image/*";
this.launch_picker.launch( intentTypeStr );

新版方法:

ActivityResultLauncher pickMedia =
    this.registerForActivityResult(new PickVisualMedia(), uri -> {
        if ( uri != null ) {
            // 处理uri
        }
    });

启动方式:

pickMedia.launch(new PickVisualMediaRequest.Builder()
    .setMediaType(PickVisualMedia.ImageOnly.INSTANCE)
    .buil

d());

虽然Google 提到安全问题,但旧版API在结合其他安全机制后,多年来一直运行良好。 新API只是对现有功能的替代,且操作更繁琐。 Google 的做法令人费解,尤其是在文档中直接推荐过时API后又强制更新。 这体现了Google 对开发者缺乏应有的尊重。

我的疑问在于:为什么Google 不直接在文档中推荐新的API,而是选择先推荐旧的,然后再宣布其过时? 这给开发者带来了不必要的麻烦。

最终,我们只能适应并更新应用。