如何避免以编程方式打开其他 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。
科特林:
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 来确认。
在很多小米手机中,当我使用此代码打开Google play商店时,小米商店就会打开。
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName)));
如何避免这种情况并检查是否安装了 Google Play 商店并仅打开 Google Play 商店?
您可以将Intent
的包设置为com.android.vending
,这是Play商店应用的包名。这将使只有该应用程序才能收到 Intent。
科特林:
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 来确认。