@ZeroGeek
2015-09-01T04:42:52.000000Z
字数 1920
阅读 713
未分类
public void goAction() {
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);
}
*/
startActivity(intent);
}
日志:
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
版本都可用
String str = "market://details?id=" + getPackageName();
Intent localIntent = new Intent("android.intent.action.VIEW");
localIntent.setData(Uri.parse(str));
startActivity(localIntent);
private boolean isAvilible(Context context, String packageName){
final PackageManager packageManager = context.getPackageManager();//获取packagemanager
List<PackageInfo> pinfo = packageManager.getInstalledPackages(0);//获取所有已安装程序的包信息
List<String> pName = new ArrayList<String>();//用于存储所有已安装程序的包名
//从pinfo中将包名字逐一取出,压入pName list中
if(pinfo != null){
for(int i = 0; i < pinfo.size(); i++){
String pn = pinfo.get(i).packageName;
pName.add(pn);
}
}
return pName.contains(packageName);//判断pName中是否有目标程序的包名,有TRUE,没有FALSE
}
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 list.size() > 0;
}