转载请注明出处:https://blog.csdn.net/mythmayor/article/details/80279279

一、前言

一个比较常见的需求是,我们希望更多的人给我们千辛万苦开发出来的应用进行打分、评价,那么这时候我们可能希望在应用内部实现这样的功能。本篇博客将清晰的告诉你如何实现这一功能。

二、实现功能的思路或步骤

1.首先我们肯定要知道自己的应用都上线到哪些平台(应用商店)了。然后要根据这些已知平台来进行过滤,过滤出在自己的设备上安装了哪些。
2.将过滤出的这些应用商店展示给用户,如果没有安装任何相关应用商店则提示用户“暂无安装相关应用商店”。
3.用户点击了某应用商店之后,则跳转到该应用商店的APP详情页。
4.下面列出了比较核心的代码,可进行参考。

/*** 过滤出已经安装的包名集合** @param context* @param pkgs    待过滤包名集合* @return 已安装的包名集合*/public ArrayList<String> getFilterInstallMarkets(Context context, ArrayList<String> pkgs) {appInfos.clear();ArrayList<String> appList = new ArrayList<String>();if (context == null || pkgs == null || pkgs.size() == 0)return appList;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);PackageInfo packageInfo = installedPkgs.get(i);try {installPkg = packageInfo.packageName;} catch (Exception e) {e.printStackTrace();}if (TextUtils.isEmpty(installPkg))continue;if (installPkg.equals(checkPkg)) {// 如果非系统应用,则添加至appList,这个会过滤掉系统的应用商店,如果不需要过滤就不用这个判断if ((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {//将应用相关信息缓存起来,用于自定义弹出应用列表信息相关用AppInfo appInfo = new AppInfo();appInfo.setAppName(packageInfo.applicationInfo.loadLabel(getPackageManager()).toString());appInfo.setAppIcon(packageInfo.applicationInfo.loadIcon(getPackageManager()));appInfo.setPackageName(packageInfo.packageName);appInfo.setVersionCode(packageInfo.versionCode);appInfo.setVersionName(packageInfo.versionName);appInfos.add(appInfo);appList.add(installPkg);}break;}}}return appList;}
//自定义的AppInfo
public class AppInfo {private String appName;private Drawable appIcon;private String packageName;private int versionCode;private String versionName;public String getAppName() {return appName;}public void setAppName(String appName) {this.appName = appName;}public Drawable getAppIcon() {return appIcon;}public void setAppIcon(Drawable appIcon) {this.appIcon = appIcon;}public String getPackageName() {return packageName;}public void setPackageName(String packageName) {this.packageName = packageName;}public int getVersionCode() {return versionCode;}public void setVersionCode(int versionCode) {this.versionCode = versionCode;}public String getVersionName() {return versionName;}public void setVersionName(String versionName) {this.versionName = versionName;}
}
/*** 跳转到应用市场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.tencent.android.qqdownloader //腾讯应用宝
com.qihoo.appstore //360手机助手
com.baidu.appsearch //百度手机助手
com.xiaomi.market //小米应用商店
com.huawei.appmarket //华为应用商店
com.wandoujia.phoenix2 //豌豆荚
com.dragon.android.pandaspace //91手机助手
com.hiapk.marketpho //安智应用商店
com.yingyonghui.market //应用汇
com.tencent.qqpimsecure //QQ手机管家
com.mappn.gfan //机锋应用市场
com.pp.assistant //PP手机助手
com.oppo.market //OPPO应用商店
cn.goapk.market //GO市场
zte.com.market //中兴应用商店
com.yulong.android.coolmart //宇龙Coolpad应用商店
com.lenovo.leos.appstore //联想应用商店
com.coolapk.market”); //cool市场
com.meizu.mstore”); //魅族应用商店
cn.ninegame.gamemanager //阿里九游

Android - 跳转到应用商店进行应用打分功能实现相关推荐

  1. Android - 跳转到应用商店进行应用打分功能实现,安卓开发面试基础

    return appList; PackageManager pm = context.getPackageManager(); List installedPkgs = pm.getInstalle ...

  2. Android跳转到应用商店的APP详情页面

    需求:从App内部点击按钮或链接,跳转到应用商店的某个APP的详情页面. 让用户 下载 或 评论. 实现: /*** 启动到应用商店app详情界面** @param appPkg 目标App的包名* ...

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

    需求: 从App内部点击按钮或链接,跳转到应用商店的某个APP的详情页面. 让用户 下载 或 评论. 实现: /*** 启动到应用商店app详情界面** @param appPkg 目标App的包名* ...

  4. Android跳转到应用商店的APP详情页面工具类(检测Google Play跳转网页详情)

    完整代码: /*** 跳转到本机应用市场*/ object MarketTools {const val HUAWEI_BRAND = "HUAWEI";//HUAWEI_PACK ...

  5. Android跳转到应用商店及常见APP对应包名

    /*** 启动到应用商店app详情界面** @param appPkg 目标App的包名* @param marketPkg 应用商店包名 ,如果为""则由系统弹出应用商店列表供用 ...

  6. android 跳转第三方应用qq或联系我们功能使用qq

    String qq = "";//填入要联系的qqif (checkApk(getActivity(), "com.tencent.mobileqq")) {s ...

  7. android APP 跳转到应用商店评分

    闲话少说,直接上代码 /*** APP 工具类** @author chenxuxu* @date 2018/2/10**/ public class AppUtils {/*** 跳转到应用商店评分 ...

  8. Android开发——跳转到应用商店以及app详情页、获取手机硬件信息、验证app是否存在

    普通跳转 Tip:该跳转可适配普通的跳转,比如跳转豌豆荚 //appPkg是你要跳转的包名//marketPkg是你使用的应用商店,如果传空,则会把你手机上的应用商店全部列出来try {if (Tex ...

  9. Android 跳转到安卓市场进行下载,跳转至应用商店下载

    需求:从App内部点击按钮或链接,跳转到应用商店的某个APP的详情页面. 让用户 下载 或 评论. 实现: /** * 启动到应用商店app详情界面 * * @param appPkg 目标App的包 ...

最新文章

  1. 机器学习算法优缺点对比及选择(汇总篇)
  2. 对于FAMNIST中的十种动物和水果进行识别测试
  3. 34. Search for a Range
  4. PostgreSQL 恢复模式错误日志增强 - 提供正在恢复的WAL(XLOG)文件位置
  5. php转换图片为.bin文件
  6. linux下的DNS服务器详解
  7. .NET应用程序中异步调用Web Service的几种方法 come from: veryhappy(wx.net)
  8. 剑指offer之 二叉搜索树的后续遍历序列
  9. static in c language
  10. MyBatis.Net 学习手记
  11. Spring的@Scheduled任务调度
  12. 清华附2021高考成绩查询,2021年高考多少分能上清华大学?附清华大学录取分数线2020全国汇总...
  13. 零中频接收机频率转换图_走进射频接收机:射频接收机的三种常见结构
  14. c语言50个小程序,C语言50小程序.doc
  15. 如何打造领英朋友圈_领英点赞,请摆好姿势!
  16. VC++学习方法及书籍推荐(转)
  17. 药一点医疗器械管理系统 药品管理软件
  18. React SSR渲染
  19. 洛谷P1512伊甸园的日历游戏题解
  20. html简单特效代码,html特效代码大全

热门文章

  1. h5酷炫粒子java代码_html5粒子效果文字特效
  2. 联想 Tab M10 5G 平板 测评值入手吗
  3. 注解都不会用,怎让Java对你动情
  4. Linux/CentOS防CC攻击脚本
  5. MATLAB小技巧(1)绘制图像能量图
  6. linux scp密码配到命令里,Linux scp命令
  7. python创建一个空集合_Python中如何创建集合
  8. anaconda安装完找不到.jupyter目录
  9. OSChina 周一乱弹 —— 红薯获得新成就“小鸟挚友”
  10. 重庆主城跑步地图|总有一条跑道适合你