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
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值