将包裹名称发送到任何市场

时间:2014-01-22 07:18:24

标签: android android-intent

我知道这个标题有一些主题。但所有这些都只适用于GooglePlay 我想让用户选择自己喜欢的市场。将包裹名称发送到市场并获得结果。

我也测试了这个:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("market://details?id=com.android.example"));
startActivity(intent);

但某些市场并不支持这一点。

1 个答案:

答案 0 :(得分:0)

您需要为Amazon Appstore和Google Play单独设定一个意图:

这段代码确定了安装它的商店,然后尝试Google Play和Amazon Appstore。如果意图失败,则会回退到正确的网页

String installer = getPackageManager().getInstallerPackageName(getPackageName());
if ("com.amazon.venezia".equals(installer)) {

    try {
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.setData(Uri.parse("amzn://apps/android?p=com.monadpad...."));
        startActivity(intent);

    }
    catch (Exception e) {
        Intent browser = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.amazon.com..."));
        startActivity(browser);
    }


}
else if ("com.android.vending".equals(installer)) {
    try {
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.setData(Uri.parse("market://details?id=com.monadpad..."));
        startActivity(intent);
    }
    catch (Exception e) {
        Intent browser = new Intent(Intent.ACTION_VIEW,
                Uri.parse("https://play.google.com/store/apps/details?id=com.monadpad...."));
        startActivity(browser);
    }

}