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
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
posted @ 2018-01-15 22:21  dub  阅读(1300)  评论(0编辑  收藏  举报