碰到很多次这方面的需求,但每次都不记得,功能很小,但是很难找。最近有碰到这方面的需求,找出来,干脆自己再整理下,贴出来,方便以后用
1.遍历手机里面装了什么应用市场
Intent intent = new Intent();
intent.setAction("android.intent.action.MAIN");
intent.addCategory("android.intent.category.APP_MARKET");
PackageManager pm = this.getPackageManager();
List<ResolveInfo> infos = pm.queryIntentActivities(intent, 0);
int size = infos.size();
for (int i = 0; i < size; i++) {
ActivityInfo activityInfo = infos.get(i).activityInfo;
String packageName = activityInfo.packageName;
Log.i( TAG, "packageName : " + packageName);
}
2.判断手机里面是否有应用市场
Intent intent = new Intent();
intent.setAction("android.intent.action.MAIN");
intent.addCategory("android.intent.category.APP_MARKET");
PackageManager pm = this.getPackageManager();
List<ResolveInfo> infos = pm.queryIntentActivities(intent, 0);
if (infos == null || infos.size() <= 0) {
Log.i(TAG, "market is null");
}
3.搜索应用或者进入应用详情
//搜索某个应用
//Uri uri = Uri.parse("market://search?q=pname:pkg_name");
//Intent it = new Intent(Intent.ACTION_VIEW, uri);
//startActivity(it);
//where pkg_name is the full package path for an application
//显示某个应用的相关信息,pkg_name为应用包名,例如com.tencent.mm
Uri uri = Uri.parse("market://details?id=pkg_name");
Intent it = new Intent(Intent.ACTION_VIEW, uri);
startActivity(it);
搜索应用时Uri可以替换为:
通过关键词搜索:
market://search?q=<关键词>
通过作者名称搜索:
market://search?q=pub:<开发者名称>
4.进入指定应用市场的应用详情:
以应用宝为例:
Intent intent = new Intent(Intent.ACTION_VIEW);
Uri uri = Uri.parse("market://details?id=" + "com.tencent.mm");
intent.setData(uri);
intent.setPackage("com.tencent.android.qqdownloader");
startActivity(intent);
5.打开应用市场列表进入
当然如果只是要把所有应用市场列出来,进入的话就简单了
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setAction("android.intent.action.MAIN");
intent.addCategory("android.intent.category.APP_MARKET");
startActivity(intent);