我已经打开谷歌播放商店使用以下代码

Intent i = new Intent(android.content.Intent.ACTION_VIEW);
i.setData(Uri.parse("https://play.google.com/store/apps/details?id=my packagename "));
startActivity(i);.

但它向我显示了一个完整的操作视图,以选择选项(浏览器/播放商店)。我需要直接在Play Store打开应用程序。


当前回答

你可以:

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

在这里获取参考资料:

你也可以尝试这个问题公认答案中描述的方法: 无法确定谷歌播放商店是否安装在Android设备上

其他回答

这个问题的一些答案已经过时了。

对我来说(在2020年)有效的方法是明确地告诉玩家跳过选择器并直接打开游戏商店应用,如下所示:

“如果你想从Android应用程序链接到你的产品,创建一个 打开URL的意图。当你配置这个意图时,通过 “com.android。自动售货”到Intent.setPackage()中,以便用户看到您的 应用程序的详细信息在谷歌Play Store应用程序,而不是一个选择器。”

这是我用来指导用户在谷歌Play中查看包含包名称com.google.android.apps.maps的应用程序的Kotlin代码:

val intent = Intent(Intent.ACTION_VIEW).apply {
               data = Uri.parse("http://play.google.com/store/apps/details?id=com.google.android.apps.maps")
               setPackage("com.android.vending")
            }
            startActivity(intent)

我希望这能帮助到一些人!

试试这个

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

对于费率应用:重定向到播放商店。 在Flutter中,你可以通过这样的平台通道进行操作

颤振部分:

 static const platform = const MethodChannel('rateApp');   // initialize 

onTap:平台。invokeMethod('urls', {'android_id': 'com.xyz'}),

现在Android原生部分(Java):

private static final String RATEAPP = "rateApp";  // initialize variable

//现在在ConfigureFlutterEngine函数中:

        new MethodChannel(flutterEngine.getDartExecutor().getBinaryMessenger(), RATEAPP)
            .setMethodCallHandler(
                    (call, result) -> {               
                        if (call.method.equals("urls") && call.hasArgument("android_id")) {
                            String id = call.argument("android_id").toString();
                          
                            try {
                                startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("$uri" + id)));
                            } catch (android.content.ActivityNotFoundException anfe) {
                                startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + id)));
                            }
                            result.success("Done");
                        } else {
                            result.notImplemented();
                        }
                    }
            );

进入Android开发者官方链接作为教程,一步一步地从play store中查看并获得应用程序包的代码,如果存在或play store应用程序不存在,然后从web浏览器中打开应用程序。

Android开发者官方链接

https://developer.android.com/distribute/tools/promote/linking.html

链接到应用程序页面

从一个网站:https://play.google.com/store/apps/details?id=<package_name>

从Android应用程序:market://details?id = < package_name >

链接到产品列表

从一个网站:https://play.google.com/store/search?q=pub:<publisher_name>

从Android应用程序:market://search?q =酒吧:< publisher_name >

链接到搜索结果

从网站:https://play.google.com/store/search?q=<search_query>&c=apps

从Android应用程序:market://search?q = < seach_query >和c =应用

public void launchPlayStore(Context context, String packageName) {
    Intent intent = null;
    try {
            intent = new Intent(Intent.ACTION_VIEW);
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            intent.setData(Uri.parse("market://details?id=" + packageName));
            context.startActivity(intent);
        } catch (android.content.ActivityNotFoundException anfe) {
            startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + packageName)));
        }
    }