[关闭]
@ZeroGeek 2015-09-01T04:42:52.000000Z 字数 1920 阅读 713

App到应用市场更新的问题

未分类


1. 打开应用市场,未定位

  1. public void goAction() {
  2. Intent intent = new Intent();
  3. intent.setAction("android.intent.action.MAIN");
  4. intent.addCategory("android.intent.category.APP_MARKET");
  5. /*
  6. //查找到所有应用市场的包名
  7. PackageManager pm = this.getPackageManager();
  8. List<ResolveInfo> infos = pm.queryIntentActivities(intent, 0);
  9. int size = infos.size();
  10. for (int i = 0; i < size; i++) {
  11. ActivityInfo activityInfo = infos.get(i).activityInfo;
  12. String packageName = activityInfo.packageName;
  13. Log.i(TAG, "packageName : " + packageName);
  14. }
  15. */
  16. startActivity(intent);
  17. }

日志:

09-01 10:13:17.779 8818-8818/com.zero.tomarketdemo I/MainActivity﹕ packageName : com.meizu.mstore
09-01 10:13:17.779 8818-8818/com.zero.tomarketdemo I/MainActivity﹕ packageName : com.android.vending
09-01 10:13:17.779 8818-8818/com.zero.tomarketdemo I/MainActivity﹕ packageName : com.wandoujia.phoenix2

2. 通过Uri,直接定位到应用市场的应用

版本都可用

存在问题

  1. String str = "market://details?id=" + getPackageName();
  2. Intent localIntent = new Intent("android.intent.action.VIEW");
  3. localIntent.setData(Uri.parse(str));
  4. startActivity(localIntent);

3. 通过包名来检测是否安装了某应用程序

  1. private boolean isAvilible(Context context, String packageName){
  2. final PackageManager packageManager = context.getPackageManager();//获取packagemanager
  3. List<PackageInfo> pinfo = packageManager.getInstalledPackages(0);//获取所有已安装程序的包信息
  4. List<String> pName = new ArrayList<String>();//用于存储所有已安装程序的包名
  5. //从pinfo中将包名字逐一取出,压入pName list中
  6. if(pinfo != null){
  7. for(int i = 0; i < pinfo.size(); i++){
  8. String pn = pinfo.get(i).packageName;
  9. pName.add(pn);
  10. }
  11. }
  12. return pName.contains(packageName);//判断pName中是否有目标程序的包名,有TRUE,没有FALSE
  13. }

4. 检测是否安装了应用市场 (可采用)

  1. public static boolean hasAnyMarketInstalled(Context context) {
  2. Intent intent = new Intent();
  3. intent.setData(Uri.parse("market://details?id=android.browser"));
  4. List<ResolveInfo> list = context.getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
  5. return list.size() > 0;
  6. }

方案

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注