android - 如果未在设备中安装,如何在浏览器中启动 google play 商店?

标签 android

我有一个应用程序,我想在其中将用户重定向到 Play 商店中的应用程序链接,该应用程序工作正常,但如果设备中未安装 Play 商店,那么我必须将用户重定向到浏览器中的应用程序链接。我如何存档这个问题。

代码:-

private void startNewActivity(Context context, String packageName) {
    Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName);
    if (intent == null) {
        // Bring user to the market or let them choose an app?
        intent = new Intent(Intent.ACTION_VIEW);
        intent.setData(Uri.parse("market://details?id=" + packageName));
        Log.e(TAG,"Package name::"+packageName);
    }

    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(intent);
}

并在onclick中调用此方法

startNewActivity(mContext, "market://details?id=com.example.something"));

最佳答案

private void startNewActivity(String packageName) {
    try { 
      Intent intent = new Intent(Intent.ACTION_VIEW);
      intent.setData(Uri.parse("market://details?id=packageName"));
      startActivity(intent);
    } catch (Exception e) { //google play app is not installed
      Intent intent = new Intent(Intent.ACTION_VIEW);
      intent.setData(Uri.parse("https://play.google.com/store/apps/details?id=packageName"));
      startActivity(intent);
    }
}

或者你可以这样试试。

下面提到检查应用程序是否安装。

private boolean appInstalledOrNot(String uri) {
        PackageManager pm = getPackageManager();
        boolean app_installed;
        try {
            pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
            app_installed = true;
        }
        catch (PackageManager.NameNotFoundException e) {
            app_installed = false;
        }
        return app_installed;
    }

现在检查并使用这样的替代方案。

boolean installed = appInstalledOrNot("Your_Package_Name");  
        if(installed) {
            Intent intent = new Intent(Intent.ACTION_VIEW);
      intent.setData(Uri.parse("market://details?id=packageName"));
      startActivity(intent);

            System.out.println("App is already installed on your phone");         
        } else {
Intent intent = new Intent(Intent.ACTION_VIEW);
      intent.setData(Uri.parse("https://play.google.com/store/apps/details?id=packageName"));
      startActivity(intent);
            System.out.println("App is not currently installed on your phone");
        }

关于android - 如果未在设备中安装,如何在浏览器中启动 google play 商店?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40500645/

相关文章:

android - LinearLayout@422725b0 不是滑动抽屉

java - 对象池概念在android中的实现

android - Gradle:错误:包 com.nostra13.universalimageloader.core 不存在

java - 尝试在任何布局中添加描边宽度时,MaterialButton 不可见

java - 无法获取当前 GPS 位置坐标

android - 如何在android中将屏幕坐标转换为geopoint

android - Android 上一致的状态栏外观

java - 关于在Android上创建GUIS "dynamically"的问题

android - Apktool 检索项目 : No resource found that matches the given name '@android:style/Animation.OptionsPanel' 的父项时出错

Android:addOnGesturePerformedListener 中的空指针异常