如何在测试 Android 广播时包含额外的捆绑包?
How to include a bundle extra when testing Android broadcasts?
我目前正在尝试测试 Google 的 App Invites,但我很难测试 INSTALL_REFERRER
广播功能而不将应用程序放到 Play 商店
App Invite 广播意图需要一个名为 "com.google.android.gms.appinvite.REFERRAL_BUNDLE"
的额外捆绑包,它已在 AppInviteReferral
中签入,如下所示:
public static boolean hasReferral(Intent referralIntent) {
return referralIntent != null && referralIntent.getBundleExtra("com.google.android.gms.appinvite.REFERRAL_BUNDLE") != null;
}
当使用 adb shell am broadcast ...
测试广播时,我们能做的最好的事情就是添加 extras,但是没有添加 bundle extra 的选项。 (documentation here)
有人知道如何将捆绑包作为广播的一部分吗?
在这个post 中说不可能通过adb 将bundle extra 放入。您可以编写简单的测试应用程序并发送您想要的应用程序邀请意图:
Intent intent = new Intent("com.android.vending.INSTALL_REFERRER");
intent.setPackage("your_package");
Bundle bundle = new Bundle();
bundle.putString("com.android.vending.INSTALL_REFERRER", "your_invite_id");
bundle.putString("com.google.android.gms.appinvite.DEEP_LINK", "your_deep_link");
intent.putExtra("com.google.android.gms.appinvite.REFERRAL_BUNDLE", bundle);
sendBroadcast(intent);
我已经用这种方式测试了 google app invite,但之前也尝试过通过 adb 发送 intent。
我目前正在尝试测试 Google 的 App Invites,但我很难测试 INSTALL_REFERRER
广播功能而不将应用程序放到 Play 商店
App Invite 广播意图需要一个名为 "com.google.android.gms.appinvite.REFERRAL_BUNDLE"
的额外捆绑包,它已在 AppInviteReferral
中签入,如下所示:
public static boolean hasReferral(Intent referralIntent) {
return referralIntent != null && referralIntent.getBundleExtra("com.google.android.gms.appinvite.REFERRAL_BUNDLE") != null;
}
当使用 adb shell am broadcast ...
测试广播时,我们能做的最好的事情就是添加 extras,但是没有添加 bundle extra 的选项。 (documentation here)
有人知道如何将捆绑包作为广播的一部分吗?
在这个post 中说不可能通过adb 将bundle extra 放入。您可以编写简单的测试应用程序并发送您想要的应用程序邀请意图:
Intent intent = new Intent("com.android.vending.INSTALL_REFERRER");
intent.setPackage("your_package");
Bundle bundle = new Bundle();
bundle.putString("com.android.vending.INSTALL_REFERRER", "your_invite_id");
bundle.putString("com.google.android.gms.appinvite.DEEP_LINK", "your_deep_link");
intent.putExtra("com.google.android.gms.appinvite.REFERRAL_BUNDLE", bundle);
sendBroadcast(intent);
我已经用这种方式测试了 google app invite,但之前也尝试过通过 adb 发送 intent。