Android 跳转应用市场评分

来源:互联网 发布:mac如何使用搜狗 编辑:程序博客网 时间:2024/05/16 08:03

在Android的App中,经常会见到这样的功能。从当前app跳转到一个应用商店且显示本软件详情的页面,让用户给自己的App进行评分,从而提高App的排名。下面介绍该功能的实现。

/*** * 跳转应用市场评分 * @author Lucasey */public class ScoreUtils {    /**     * 获取已安装应用商店的包名列表     *      * @param context     * @return     */    public static ArrayList<String> InstalledAPPs(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> SelectedInstalledAPPs(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);            MyUtils.getAppContext().startActivity(intent);        } catch (Exception e) {            e.printStackTrace();        }    }}
0 0
原创粉丝点击