Android 跳转应用市场评分
2016-06-27 15:41
387 查看
在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(); } } }
相关文章推荐
- H.264视频在android手机端的解码与播放(转)
- Android内核开发:系统启动速度优化-Android OS启动优化(转)
- Android SDK和NDK
- Android 开源框架Universal-Image-Loader完全解析(二)--- 图片缓存策略详解
- Android的面孔_Actiyity
- Android 开源框架Universal-Image-Loader完全解析(一)--- 基本介绍及使用
- android 资讯阅读器
- Android studio Unsupported major.minor version 52.0
- Android学习小记------Android应用框架简介
- 利用PHP判断iPhone、iPad、Android、PC设备
- JAVA_Android APK反编译就这么简单 详解(附图)
- Android Material Design-TabLayout的使用
- android Sqlite 四大语法注解
- I.MX6 android mkuserimg.sh
- Android 7 新特性浅析
- Android Studio常用快捷键
- 【Android】PorterDuffXfermode使用(通过消除背景层与重叠部分绘制组合图形)
- Android Studio常用快捷键
- Android Studio 快捷键
- [android] 标题部分管理