• Android应用如何跳转到应用市场详情页面


    方法一:

    public void launchAppDetail(String appPkg, String marketPkg) {
    try {
    if (TextUtils.isEmpty(appPkg))return;
    Uri uri = Uri.parse("market://details?id=" + appPkg);
    Intent intent = new Intent(Intent.ACTION_VIEW, uri);
    if (!TextUtils.isEmpty(marketPkg))
    intent.setPackage(marketPkg);
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);
    } catch (Exception e) {
    e.printStackTrace();
    }
    }

    方法二:

    /**
     * 启动到应用商店app详情界面
     *
     * @param appPkg  目标App的包名
     * @param marketPkg 应用商店包名 ,如果为""则由系统弹出应用商店列表供用户选择,否则调转到目标市场的应用详情界面,某些应用商店可能会失败
     */
    public void launchAppDetail(String appPkg, String marketPkg) {
      try {
        if (TextUtils.isEmpty(appPkg)) return;
        Uri uri = Uri.parse("market://details?id=" + appPkg);
        Intent intent = new Intent(Intent.ACTION_VIEW, uri);
        if (!TextUtils.isEmpty(marketPkg)) {
          intent.setPackage(marketPkg);
        }
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
    com.android.vending     Google Play
     com.tencent.android.qqdownloader    应用宝
     com.qihoo.appstore   360手机助手
     com.baidu.appsearch 百度手机助
     com.xiaomi.market  小米应用商店
     com.wandoujia.phoenix2 豌豆荚
     com.huawei.appmarket  华为应用市场
     com.taobao.appcenter  淘宝手机助手
     com.hiapk.marketpho 安卓市场
     cn.goapk.market 安智市场
    方法三:

    编写跳转到应用详情的代码

    package com.caige.utils;

    import java.util.ArrayList;

    import java.util.List;

    import com.a.a.in;

    import android.content.ComponentName;

    import android.content.Context;

    import android.content.Intent;

    import android.content.pm.ActivityInfo;

    import android.content.pm.PackageInfo;

    import android.content.pm.PackageManager;

    import android.content.pm.ResolveInfo;

    import android.net.Uri;

    import android.text.TextUtils;

    /**

     * Caige

     * 应用商店评分工具

     */

    public class MarketUtils {

        /**

         * 获取已安装应用商店的包名列表

         * @param context

         * @return

         */

        public static ArrayList<String> queryInstalledMarketPkgs(Context context) {

            ArrayList<String> pkgs = new ArrayList<String>();

            if (context == null)

                return pkgs;

            Intent intent = new Intent();

            intent.setAction("android.intent.action.MAIN");

            intent.addCategory("android.intent.category.APP_MARKET");

            PackageManager pm = context.getPackageManager();

            List<ResolveInfo> infos = pm.queryIntentActivities(intent, 0);

            if (infos == null || infos.size() == 0)

                return pkgs;

            int size = infos.size();

            for (int i = 0; i < size; i++) {

                String pkgName = "";

                try {

                    ActivityInfo activityInfo = infos.get(i).activityInfo;

                    pkgName = activityInfo.packageName;

                } catch (Exception e) {

                    e.printStackTrace();

                }

                if (!TextUtils.isEmpty(pkgName))

                    pkgs.add(pkgName);

            }

            return pkgs;

        }

        /**

         * 过滤出已经安装的包名集合

         * 

         * @param context

         * @param pkgs

         *            待过滤包名集合

         * @return 已安装的包名集合

         */

        public static ArrayList<String> filterInstalledPkgs(Context context,

                ArrayList<String> pkgs) {

            ArrayList<String> empty = new ArrayList<String>();

            if (context == null || pkgs == null || pkgs.size() == 0)

                return empty;

            PackageManager pm = context.getPackageManager();

            List<PackageInfo> installedPkgs = pm.getInstalledPackages(0);

            int li = installedPkgs.size();

            int lj = pkgs.size();

            for (int j = 0; j < lj; j++) {

                for (int i = 0; i < li; i++) {

                    String installPkg = "";

                    String checkPkg = pkgs.get(j);

                    try {

                        installPkg = installedPkgs.get(i).applicationInfo.packageName;

                    } catch (Exception e) {

                        e.printStackTrace();

                    }

                    if (TextUtils.isEmpty(installPkg))

                        continue;

                    if (installPkg.equals(checkPkg)) {

                        empty.add(installPkg);

                        break;

                    }

                }

            }

            return empty;

        }

        /**

         * 启动到app详情界面

         * 

         * @param appPkg

         *            App的包名

         * @param marketPkg

         *            应用商店包名 ,如果为""则由系统弹出应用商店列表供用户选择,否则调转到目标市场的应用详情界面,某些应用商店可能会失败

         */

        public static void launchAppDetail(String appPkg, String marketPkg) {

            try {

                if (TextUtils.isEmpty(appPkg))

                    return;

                Uri uri = Uri.parse("market://details?id=" + appPkg);

                Intent intent = new Intent(Intent.ACTION_VIEW, uri);

                if (!TextUtils.isEmpty(marketPkg))

                    intent.setPackage(marketPkg);

                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

                AppUtils.getAppContext().startActivity(intent);

            } catch (Exception e) {

                e.printStackTrace();

            }

        }

    }

    主流应用商店对应的包名如下:

    com.qihoo.appstore  360手机助手

    com.taobao.appcenter    淘宝手机助手

    com.tencent.android.qqdownloader    应用宝

    com.hiapk.marketpho 安卓市场     

    cn.goapk.market 安智市场  

    public static void goToMarket(Context context, String packageName) { Uri uri = Uri.parse("market://details?id=" + packageName); Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri); try { context.startActivity(goToMarket); } catch (ActivityNotFoundException e) { e.printStackTrace(); } }


    作者:咻咻ing
    链接:https://www.jianshu.com/p/2165acb5d1eb
    來源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
    public static void goToMarket(Context context, String packageName) { Uri uri = Uri.parse("market://details?id=" + packageName); Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri); try { context.startActivity(goToMarket); } catch (ActivityNotFoundException e) { e.printStackTrace(); } }


    作者:咻咻ing
    链接:https://www.jianshu.com/p/2165acb5d1eb
    來源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
    public static void goToMarket(Context context, String packageName) { Uri uri = Uri.parse("market://details?id=" + packageName); Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri); try { context.startActivity(goToMarket); } catch (ActivityNotFoundException e) { e.printStackTrace(); } }


    作者:咻咻ing
    链接:https://www.jianshu.com/p/2165acb5d1eb
    來源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    Spring IOC 和 AOP
    Java 类加载机制
    面向对象程序设计思想简述
    Linux 卸载 MySQL 数据库
    Linux 安装 mysql 数据库
    Linux 配置 JDK
    Linux 指令
    去除字符串里面的某些字符替换成另一个字符
    jsp有哪些内置对象?作用分别是什么? 分别有什么方法?
    jsp有哪些动作?作用分别是什么?
  • 原文地址:https://www.cnblogs.com/dubo-/p/8290271.html
Copyright © 2020-2023  润新知