看到现在市面很多应用都有打开应用商店评分的功能。于是自己也试着写的个应用评分

如下图:

既然我们的打开手机上的已经应用商店,就必须有各大应用商店的包名,以下是现在几个主流的应用static {

MarketPackages.add("com.lenovo.leos.appstore");

MarketPackages.add("com.android.vending");

MarketPackages.add("com.xiaomi.market");

MarketPackages.add("com.qihoo.appstore");

MarketPackages.add("com.wandoujia.phoenix2");

MarketPackages.add("com.baidu.appsearch");

MarketPackages.add("com.tencent.android.qqdownloader");

}

然后就是过滤掉手机上没有安装的应用商店public static List filterInstalledPkgs(Context context) {

List infos = new ArrayList<>();

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

return infos;

PackageManager pm = context.getPackageManager();

List installedPkgs = pm.getInstalledPackages(0);

int li = installedPkgs.size();

int lj = MarketPackages.size();

for (int j = 0; j

for (int i = 0; i

String installPkg = "";

String checkPkg = MarketPackages.get(j);

try {

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

} catch (Exception e) {

e.printStackTrace();

}

if (TextUtils.isEmpty(installPkg))

continue;

if (installPkg.equals(checkPkg)) {

infos.add(installedPkgs.get(i).applicationInfo);

break;

}

}

}

return infos;

}

接着就的打开的我们的应用商店来进行评价了/**

* 启动到app详情界面

*

* @param appPkg

*            App的包名

* @param marketPkg

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

*/

public static void launchAppDetail(Context context, 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);

context.startActivity(intent);

} catch (Exception e) {

e.printStackTrace();

}

}

全部源码/**

* 2015-11-1

* 应用商店评分工具类

*/

public class MarketUtils {

private static List MarketPackages = new ArrayList<>();

static {

MarketPackages.add("com.lenovo.leos.appstore");

MarketPackages.add("com.android.vending");

MarketPackages.add("com.xiaomi.market");

MarketPackages.add("com.qihoo.appstore");

MarketPackages.add("com.wandoujia.phoenix2");

MarketPackages.add("com.baidu.appsearch");

MarketPackages.add("com.tencent.android.qqdownloader");

}

public static List queryInstalledMarketInfos(Context context) {

List infos = new ArrayList<>();

if (context == null) return infos;

Intent intent = new Intent();

intent.setAction(Intent.ACTION_MAIN);

intent.addCategory(Intent.CATEGORY_APP_MARKET);

PackageManager pm = context.getPackageManager();

List resolveInfos = pm.queryIntentActivities(intent, 0);

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

return infos;

}

for (int i = 0; i

try {

infos.add(resolveInfos.get(i).activityInfo);

} catch (Exception e) {

e.printStackTrace();

}

}

return infos;

}

public static List filterInstalledPkgs(Context context) {

List infos = new ArrayList<>();

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

return infos;

PackageManager pm = context.getPackageManager();

List installedPkgs = pm.getInstalledPackages(0);

int li = installedPkgs.size();

int lj = MarketPackages.size();

for (int j = 0; j

for (int i = 0; i

String installPkg = "";

String checkPkg = MarketPackages.get(j);

try {

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

} catch (Exception e) {

e.printStackTrace();

}

if (TextUtils.isEmpty(installPkg))

continue;

if (installPkg.equals(checkPkg)) {

infos.add(installedPkgs.get(i).applicationInfo);

break;

}

}

}

return infos;

}

/**

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

*

* @param context

* @return

*/

public static ArrayList queryInstalledMarketPkgs(Context context) {

ArrayList pkgs = new ArrayList();

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 infos = pm.queryIntentActivities(intent, 0);

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

return pkgs;

int size = infos.size();

for (int i = 0; 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 filterInstalledPkgs(Context context, ArrayList pkgs) {

ArrayList empty = new ArrayList();

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

return empty;

PackageManager pm = context.getPackageManager();

List installedPkgs = pm.getInstalledPackages(0);

int li = installedPkgs.size();

int lj = pkgs.size();

for (int j = 0; j

for (int i = 0; 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(Context context, 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);

context.startActivity(intent);

} catch (Exception e) {

e.printStackTrace();

}

}

}

广告

这里打个小广告,介绍下我最近开发的几个小应用

大家多支持下,如果下载达到 1000 的话,我会将其中一两个项目开源出来的哦。

android 商城评价,打开应用商店对应用进行评价相关推荐

  1. 如何直接从我的Android应用程序打开Goog​​le Play商店?

    本文翻译自:How to open the Google Play Store directly from my Android application? I have open the Google ...

  2. android/iPhone:如何从browser直接打开应用程序或者打开应用商店(如果没有应用程序)

    最近在做一个项目,该项目的前身是为mobile browser量身打造的一个网站.现在有这样一个需求: 当用户在用mobile browser浏览该网站的时候会点击一个按钮/超链接,通过这个按钮的点击 ...

  3. android 浏览器打开应用商店,android/iPhone:如何从browser直接打开应用程序或者没有应用程序打开应用商店...

    当用户在用mobile browser浏览该网站的时候会点击一个按钮/超链接,通过这个按钮的点击事情需要打开安装在本机的应用程序,或者如果本机没有安装该应用程序则打开应用商店并打开该程序在商店中的搜索 ...

  4. mobi怎么在Android手机上打开?

    mobi格式之所以流行主要是源于亚马逊官网的电子书格式以及Kindle,mobi格式的文件无法直接用阅读器打开,而我们在日常生活中经常用手机打开文件阅读.今天小编就向大家分享mobi怎么在Androi ...

  5. Android商城开发----点击加入购物车,购物车商品的增删减

    Android商城开发----点击加入购物车,购物车商品的增删减 上一章节:[分类页面]点击左侧类别,实现右侧对应类别商品的展示 本文是在上一章节基础上开发的,点击[分类]页面商品的加入购物车按钮,实 ...

  6. android打开wav格式,FileNotFoundException从Android资产中打开wav文件

    在我们的android应用程序中,我们打开位于assets/config/notification.wav中的wav文件.要打开和播放声音,我们使用下面的代码:FileNotFoundExceptio ...

  7. Android 通过网页打开自己的APP(scheme)

    Android 通过网页打开自己的APP(scheme) 分类: android2014-07-09 17:35 8565人阅读 评论(2) 收藏 举报 通过用手机的浏览器(内置,第三方都可)访问一个 ...

  8. 解决vue在ios或android中用webview打开H5链接时#号后面的参数被忽略问题angular同样适用

    解决vue在ios或android中用webview打开H5链接时#号后面的参数被忽略问题angular同样适用 参考文章: (1)解决vue在ios或android中用webview打开H5链接时# ...

  9. 在Android Studio中打开Android Device Monitor时报错的解决方法

    在Android Studio中打开Android Device Monitor时报错的解决方法 参考文章: (1)在Android Studio中打开Android Device Monitor时报 ...

最新文章

  1. linux-shell命令之mv(move)【移动或者改名】
  2. 第八十三期:这些高性能负载均衡架构知识点,90%的人分不清!
  3. 50T内存?百万机时?头一次见这么耗费内存和机时的分析?
  4. Table Store实时数据通道服务Go SDK快速入门
  5. JavaScript是什么
  6. Spring 面试 7 大问题,你顶得住不?
  7. 精选5款不常见但十分好用的国产软件
  8. c#html转换pdf,[C#] 网页Html转PDF档(一行程式码解决)
  9. 落实安全生产责任,施工单位双重预防体系智能化管理解决方案
  10. 冰点还原精灵手工强制删除方法
  11. 开源OA的公文编辑器详解:公文格式和基本使用
  12. linux物理服务器搬迁后,更换了路由器,ping不同外网
  13. 二维最大类间方差阈值分割的快速迭代算法
  14. 机器学习?有无监督、弱监督、半监督、强化、多示例学习是什么
  15. Linux(ubuntu)内容整理(常用命令)
  16. 【英语-同义词汇词组】consider,think,believe,count,deem,reckon,regard、hold 表示【认为】时的用法及区别
  17. Magisk使用记录
  18. 专访《王者荣耀》团队 附天美L1工作室照片
  19. threejs加载服务器文件,如何使用Three.js加载obj和mtl文件
  20. 74HC595驱动2位数码管代码实现和注意事项

热门文章

  1. 【FPGA实例】基于FPGA的DDS信号发生器设计
  2. 前苏联奥数题之12个乒乓球问题解答
  3. android 10.0 去掉未知来源弹窗 默认授予安装未知来源权限
  4. 协同办公系统运用的PHP框架,Thinkphp5 开发 OA 办公系统 - 项目管理
  5. Microbiome杂志和主编介绍
  6. 计算机组成翟学明,东北大学秦皇岛分校组成原理课程设计.doc
  7. Linux 两个文件求交集、并集、差集
  8. 机票信息全方位实时采集方案
  9. 计算机应用基础教程段永平,段永平
  10. 实施工程师或技术支持必须熟悉的技能