如何判断手机中是否已安装app市场应用?

麦田捕手 2015-01-13 02:45:43
产品加了一个新需求,就是在设置中添加了一项“去评分”为软件评分,就是调用系统已安装的app市场应用来为软件评分功能,现已实现。可后来要求改进:如果手机中没有安装任何app市场应用,“去评分”则不显示。
那怎么判断手机中是否安装了app市场应用了?
请问各位高人,系统是否提供相关的方法了吗?
...全文
558 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
技术小黑屋 2015-01-14
  • 打赏
  • 举报
回复

public static boolean hasAnyMarketInstalled(Context context) {
	    Intent intent = new Intent();
	    intent.setData(Uri.parse("market://details?id=android.browser"));
	    List<ResolveInfo> list = context.getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
	    return 0 != list.size();
	}
这段代码可以解决问题。
sky-Z 2015-01-14
  • 打赏
  • 举报
回复
直接用intent.CATEGORY_APP_MARKET去查询吧,按照包名太麻烦
windfury_plus 2015-01-14
  • 打赏
  • 举报
回复
引用 2 楼 inquisitive_plus 的回复:

context.getPackageManager().getPackageInfo(包名, PackageManager.GET_ACTIVITIES);
例如豌豆荚的是com.wandoujia.phoenix2 应用宝的是com.tencent.android.qqdownloader 上面的包名是获取应用所对应的包名得到的,其他的市场也可以这么做
代码是判断是否有这个包名的,为空则是没有 获取手机应用包名:http://blog.csdn.net/feng88724/article/details/6198446
windfury_plus 2015-01-14
  • 打赏
  • 举报
回复

context.getPackageManager().getPackageInfo(包名, PackageManager.GET_ACTIVITIES);
例如豌豆荚的是com.wandoujia.phoenix2 应用宝的是com.tencent.android.qqdownloader 上面的包名是获取应用所对应的包名得到的,其他的市场也可以这么做
bdmh 2015-01-13
  • 打赏
  • 举报
回复
获得所有package,根据包名查找

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧