首先遍历手机内应用,找到需要的应用包名:

    /**
* 遍历手机内应用包名
* @param context
*/
public static void loadApps(Context context) {
Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> apps = context.getPackageManager().queryIntentActivities(intent, );
//for循环遍历ResolveInfo对象获取包名和类名
for (int i = ; i < apps.size(); i++) {
ResolveInfo info = apps.get(i);
String packageName = info.activityInfo.packageName;
CharSequence cls = info.activityInfo.name;
CharSequence name = info.activityInfo.loadLabel(context.getPackageManager());
Log.e("wgh!!!!!", name + "----" + packageName + "----" + cls);
}
}

对包名进行应用市场详情页面跳转:

    /**
* 启动到app详情界面
*
* @param appPkg
* App的包名
* @param marketPkg
* 应用商店包名 ,如果为""则由系统弹出应用商店列表供用户选择,否则调转到目标市场的应用详情界面,某些应用商店可能会失败
*/
public static void launchAppDetail(Context context,String appPkg, String marketPkg) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("market://details?id=" + appPkg));
String[] keys = getKeys(context);
if (keys != null) {
intent.setClassName(keys[], keys[]);
}
//修复某些老手机会因为找不到任何市场而报错
if (isIntentAvailable(context, intent)) {
context.startActivity(intent);
} else {
ToastUtil.showToast("应用市场不存在");
}
} private static String[] getKeys(Context context) {
String[] keys = new String[];
if (isPackageExist(context, PACKAGE_MI_MARKET)) {
keys[] = PACKAGE_MI_MARKET;
keys[] = MI_MARKET_PAGE;
} else if (isPackageExist(context, PACKAGE_VIVO_MARKET)) {
keys[] = PACKAGE_VIVO_MARKET;
keys[] = VIVO_MARKET_PAGE;
} else if (isPackageExist(context, PACKAGE_OPPO_MARKET)) {
keys[] = PACKAGE_OPPO_MARKET;
keys[] = OPPO_MARKET_PAGE;
} else if (isPackageExist(context, PACKAGE_HUAWEI_MARKET)) {
keys[] = PACKAGE_HUAWEI_MARKET;
keys[] = HUAWEI_MARKET_PAGE;
} else if (isPackageExist(context, PACKAGE_ZTE_MARKET)) {
keys[] = PACKAGE_ZTE_MARKET;
keys[] = ZTE_MARKET_PAGE;
} else if (isPackageExist(context, PACKAGE_COOL_MARKET)) {
keys[] = PACKAGE_COOL_MARKET;
keys[] = COOL_MARKET_PAGE;
} else if (isPackageExist(context, PACKAGE_360_MARKET)) {
keys[] = PACKAGE_360_MARKET;
keys[] = PACKAGE_360_PAGE;
} else if (isPackageExist(context, PACKAGE_MEIZU_MARKET)) {
keys[] = PACKAGE_MEIZU_MARKET;
keys[] = MEIZU_MARKET_PAGE;
} else if (isPackageExist(context, PACKAGE_TENCENT_MARKET)) {
keys[] = PACKAGE_TENCENT_MARKET;
keys[] = TENCENT_MARKET_PAGE;
} else if (isPackageExist(context, PACKAGE_ALI_MARKET)) {
keys[] = PACKAGE_ALI_MARKET;
keys[] = ALI_MARKET_PAGE;
} else if (isPackageExist(context, PACKAGE_WANDOUJIA_MARKET)) {
keys[] = PACKAGE_WANDOUJIA_MARKET;
keys[] = WANDOUJIA_MARKET_PAGE;
} else if (isPackageExist(context, PACKAGE_UCWEB_MARKET)) {
keys[] = PACKAGE_UCWEB_MARKET;
keys[] = UCWEB_MARKET_PAGE;
}
if (TextUtils.isEmpty(keys[])) {
return null;
} else {
return keys;
}
}
/**
* @param context
* @param packageName
* @return
* @Title isPackageExist
* @Description .判断package是否存在
* @date 2013年12月31日 上午9:49:59
*/
public static boolean isPackageExist(Context context, String packageName) {
PackageManager manager = context.getPackageManager();
Intent intent = new Intent().setPackage(packageName);
List<ResolveInfo> infos = manager.queryIntentActivities(intent, PackageManager.GET_INTENT_FILTERS);
if (infos == null || infos.size() < ) {
return false;
} else {
return true;
}
}
/**
* 检测 响应某个Intent的Activity 是否存在
* @param context
* @param intent
* @return
*/
@SuppressLint("WrongConstant")
public static boolean isIntentAvailable(Context context, Intent intent) {
final PackageManager packageManager = context.getPackageManager();
List<ResolveInfo> list = packageManager.queryIntentActivities(intent,
PackageManager.GET_ACTIVITIES);
return list.size() > ;
}

应用市场包名:

    //小米应用商店
public static final String PACKAGE_MI_MARKET = "com.xiaomi.market";
public static final String MI_MARKET_PAGE = "com.xiaomi.market.ui.AppDetailActivity";
//魅族应用商店
public static final String PACKAGE_MEIZU_MARKET = "com.meizu.mstore";
public static final String MEIZU_MARKET_PAGE = "com.meizu.flyme.appcenter.activitys.AppMainActivity";
//VIVO应用商店
public static final String PACKAGE_VIVO_MARKET = "com.bbk.appstore";
public static final String VIVO_MARKET_PAGE = "com.bbk.appstore.ui.AppStoreTabActivity";
//OPPO应用商店
public static final String PACKAGE_OPPO_MARKET = "com.oppo.market";
public static final String OPPO_MARKET_PAGE = "a.a.a.aoz";
//华为应用商店
public static final String PACKAGE_HUAWEI_MARKET = "com.huawei.appmarket";
public static final String HUAWEI_MARKET_PAGE = "com.huawei.appmarket.service.externalapi.view.ThirdApiActivity";
//ZTE应用商店
public static final String PACKAGE_ZTE_MARKET = "zte.com.market";
public static final String ZTE_MARKET_PAGE = "zte.com.market.view.zte.drain.ZtDrainTrafficActivity";
//360手机助手
public static final String PACKAGE_360_MARKET = "com.qihoo.appstore";
public static final String PACKAGE_360_PAGE = "com.qihoo.appstore.distribute.SearchDistributionActivity";
//酷市场 -- 酷安网
public static final String PACKAGE_COOL_MARKET = "com.coolapk.market";
public static final String COOL_MARKET_PAGE = "com.coolapk.market.activity.AppViewActivity";
//应用宝
public static final String PACKAGE_TENCENT_MARKET = "com.tencent.android.qqdownloader";
public static final String TENCENT_MARKET_PAGE = "com.tencent.pangu.link.LinkProxyActivity";
//PP助手
public static final String PACKAGE_ALI_MARKET = "com.pp.assistant";
public static final String ALI_MARKET_PAGE = "com.pp.assistant.activity.MainActivity";
//豌豆荚
public static final String PACKAGE_WANDOUJIA_MARKET = "com.wandoujia.phoenix2";
public static final String WANDOUJIA_MARKET_PAGE = "com.pp.assistant.activity.PPMainActivity";
//UCWEB
public static final String PACKAGE_UCWEB_MARKET = "com.UCMobile";
public static final String UCWEB_MARKET_PAGE = "com.pp.assistant.activity.PPMainActivity";

Android 遍历手机应用,跳转应用市场详情页面的更多相关文章

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

    Android应用开发过程中,可能会有需求,比如:推广时跳转到应用市场下载应用,跳转到应用市场给自己的应用打分,跳转到应用市场更新自己的应用.那如何跳转到应用市场呢?可能跳转的方法大家都是知道的,方法 ...

  2. 【转】Android应用如何跳转到应用市场详情页面

    Android应用开发过程中,可能会有需求,比如:推广时跳转到应用市场下载应用,跳转到应用市场给自己的应用打分,跳转到应用市场更新自己的应用.那如何跳转到应用市场呢? 可能跳转的方法大家都是知道的,方 ...

  3. 如何绑定android点击事件--跳转到另一个页面并实现关闭功能?

    一.点击按钮跳转到另一个页面. eg:实现从一个页面点击跳转到另一个页面 1.首先在一个布局文件(.XML)中绘画了一个跳转按钮(id为btn1): <Button         androi ...

  4. Android 应用内直接跳转酷市场

    不确定酷市场后期是否还会该包名或者路径,目前的7.9 版本测试通过. private void gotoCoolapkMarket() { try { Intent intent = new Inte ...

  5. android 6.0+ 动态权限 拒绝不再询问后跳转设置应用详情页面

    android 6.0+ 的权限 需要动态申请 这里的权限针对的是 敏感权限: SMS(短信) SEND_SMS RECEIVE_SMS READ_SMS RECEIVE_WAP_PUSH RECEI ...

  6. Android中当前Activity跳转到当前Activity页面

    步骤:先关闭自己,在跳转 case R.id.btn_copy:// 复制 Toast.makeText(mContext, "正在复制", Toast.LENGTH_SHORT) ...

  7. JS判断是否是微信页面,判断手机操作系统(ios或android)并跳转到不同下载页面

    JS判断客户端是否是iOS或者Android 参考:http://caibaojian.com/browser-ios-or-android.html function is_weixin() { v ...

  8. Android需求之点击跳转至市场评价

    相信大家都看过APP上有一个选项"喜欢此APP?还希望您评价一下吧!",然后点击弹出选择框让你选择一个市场如: 安智市场,百度应用,豌豆荚-.然后选择其中一个后就跳转至此市场你的A ...

  9. Android跳转到应用商店的APP详情页面,以及 Google GMS 各个apk的包

    转自:http://www.jianshu.com/p/a4a806567368 需求: 从App内部点击按钮或链接,跳转到应用商店的某个APP的详情页面.让用户 下载 或 评论. 实现: /** * ...

随机推荐

  1. Mac版Sourcetree的安装使用

    本人也在亲测,感觉很有效,和大家分享,参考链接: https://www.jianshu.com/p/b8d0547a8449

  2. 剑指offer 27:二叉搜索树与双向链表

    题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不能创建任何新的结点,只能调整树中结点指针的指向. 解题思路 采用中序遍历遍历二叉树,利用二叉排序树的特性,顺次连接节点,形成 ...

  3. Web APP自动更新

    我们的手机软件每天都要经营,经常需要更新,比如程序的Bug,好的功能,好的洁面... ... 这就需要我们的用户打开web app时候自动更新客户端程序,而不是再去应用程序商店从新下载.今天的笔记就是 ...

  4. NFS共享储存

    目录 NFS 为什么要使用共享存储 集群没有共享存储的情况 集群有共享存储 NFS的工作原理 NFS部署 1.环境准备 2.关闭防火墙和selinux 3.部署nfs服务端 4.启动rpcbind 5 ...

  5. 43-安装 Docker Machine

    前面我们的实验环境中只有一个 docker host,所有的容器都是运行在这一个 host 上的.但在真正的环境中会有多个 host,容器在这些 host 中启动.运行.停止和销毁,相关容器会通过网络 ...

  6. Linux:搭建samba服务器

    samba服务器的搭建 修改防火墙设置 firewall-cmd --permanent --add-service=samba //设置防火墙 firewall-cmd --reload //重新加 ...

  7. SQL注入神器———Sqlmap!

    Sqlmap 开源,python编写 支持5种SQL注入检测技术: 1.基于布尔的注入检测 2.基于时间的注入检测 3.基于错误的注入检测 4.基于UNION联合查询的检测 5.基于堆叠查询的检测 支 ...

  8. 基础知识 Asp.Net MVC EF各版本区别

    原文:https://www.cnblogs.com/liangxiaofeng/p/5840754.html 2009年發行ASP.NET MVC 1.0版 2010年發行ASP.NET MVC 2 ...

  9. C语言中倒序输出你输入的数。

    int n; scanf("%d",&n); while(n>0) { printf("%d",n%10); n/=10;  //其实就是n的自除 ...

  10. 关于group by的用法 原理

    转载: https://blog.csdn.net/u014717572/article/details/80687042. 写在前面的话:用了好久group by,今天早上一觉醒来,突然感觉grou ...