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

时间:2020-08-16 22:17:14

标签: android android-intent google-play

在许多Mi手机中,当我使用此代码打开Goog​​le Play商店时,MI商店就会打开。

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

如何避免这种情况,并检查是否已安装Google Play商店并仅打开Goog​​le Play商店?

1 个答案:

答案 0 :(得分:2)

您可以将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手机可以确认,因此我没有进行测试。