尝试获取在 Android 12 上打开应用程序的动态 link 会给出不完整的 link

Trying to get the dynamic link that opened the app on Android 12 gives incomplete link

我正在为 Feed 上的 post 创建共享按钮。我正在使用 Firebase Dynamic Links 生成一个唯一的 link,最后有一个自定义参数。在 Android 11 和以前的设备上,link 已成功处理,我检索了完整的 link,然后从中提取了 id 部分,然后使用加载了正确的 post 数据那。但是在 Android 12 上,我只得到 link 的基本部分,而不是我添加的自定义参数。我不想更改 link 生成逻辑,因为该应用程序已经在 Play 商店中。有人可以帮忙吗?

Link生成代码:

String url = "https://<BASE LINK CONFIGURED IN FIREBASE>/?link=https://<BASE LINK CONFIGURED IN FIREBASE>/&apn=<APP PACKAGE NAME>&afl=<LINK TO APP IN GOOGLE PLAY STORE>&ofl=<LINK TO APP IN GOOGLE PLAY STORE>";
                    Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink()
                            .setLongLink(Uri.parse(url))
                            .buildShortDynamicLink()
                            .addOnCompleteListener(new OnCompleteListener<ShortDynamicLink>() {
                                @Override
                                public void onComplete(@NonNull Task<ShortDynamicLink> task) {
                                    if (task.isSuccessful()) {
                                        Uri shortLink = task.getResult().getShortLink();
                                        String link = shortLink.toString();
                                        
                                        link += "?id=" + post.getID();
                                        Intent sendIntent = new Intent();
                                        sendIntent.setAction(Intent.ACTION_SEND);
                                        sendIntent.putExtra(Intent.EXTRA_TEXT, link);
                                        sendIntent.setType("text/plain");

                                        Intent shareIntent = Intent.createChooser(sendIntent, null);
                                        context.startActivity(shareIntent);
                                    } else {
                                        Toast.makeText(context, "Error creating link", Toast.LENGTH_SHORT).show();
                                    }
                                }
                            });

Link 从动态打开应用程序时读取代码 link:

Intent intent = getIntent();
Uri uri = intent.getData();

String uriString = uri.toString(); //Used to contain complete link, but now has only BASE LINK CONFIGURED IN FIREBASE

//Extracting parameter from complete link and further processing like fetching data etc.

理想情况下我不想更改生成代码,但如果没有其他办法,我想我将不得不更改它。谢谢!

所以,我终于解决了这个问题。事实证明这不是 Android 版本问题,而是出于某种原因它只发生在发布 APK 而不是调试 APK 中。我终于明白发生了什么事。在调试 APK 中,我收到了完整的 link (https:///?id=),但在发布 APK 中,我只收到了 link参数原link(https:///?link=https:///&apn=&afl=&ofl=)。所以我在这个 link 参数中添加了我自定义生成的 link 并且它现在工作正常,在 Android 11 和 12 以及调试 APK 和发布 APK 上.