如何避免以编程方式打开其他 android 商店并仅在 Android 上打开 Google Play 商店?

How to avoid opening other android stores and open only Google Play Store on Android programmatically?

在很多小米手机中,当我使用此代码打开Google play商店时,小米商店就会打开。

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName)));

如何避免这种情况并检查是否安装了 Google Play 商店并仅打开 Google Play 商店?

您可以将Intent的包设置为com.android.vending,这是Play商店应用的包名。这将使只有该应用程序才能收到 Intent。

基于Linking to Google Play

科特林:

val appPackageName = "your.package.name.here"
val intent = Intent(Intent.ACTION_VIEW).apply {
    data = Uri.parse(
            "https://play.google.com/store/apps/details?id=$appPackageName")
    setPackage("com.android.vending")
}
startActivity(intent)

Java:

String appPackageName = "your.package.name.here";
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(
        "https://play.google.com/store/apps/details?id=" + appPackageName));
intent.setPackage("com.android.vending");
startActivity(intent);

如果未安装 Play 商店,startActivity 调用将抛出一个 ActivityNotFoundException,您可以捕捉到。

我相信这也适用于 market:// 网址,但我没有测试过,因为我没有 Mi phone 来确认。