/**
* 获取跳转意图
*
* @param context 上下文
* @return 意图
* 如果不加对应的应用包名,则直接跳转到应用市场
*/
public static Intent getIntent(Context context) {
StringBuilder localStringBuilder = new StringBuilder().append("market://details?id=");
// String str = context.getPackageName();
// localStringBuilder.append(str);
Log.e("fang", "getIntent: " + localStringBuilder.toString() );
Uri localUri = Uri.parse(localStringBuilder.toString());
return new Intent("android.intent.action.VIEW", localUri);
}
/**
* 判断是否有应用市场
*
* @param context 上下文
* @param marketIntent 跳转意图
* @return 是否有应用市场true/false
*/
public static boolean judge(Context context, Intent marketIntent) {
List<ResolveInfo> localList = context.getPackageManager().queryIntentActivities(marketIntent, PackageManager.GET_RESOLVED_FILTER);
if ((localList != null) && (localList.size() > 0)) {
return false;
} else {
return true;
}
}
/**
* 跳转到应用详情页
*
* @param activity 上下文
*/
private static void toMarket(Activity activity) {
Intent intent = getIntent(activity);
boolean b = judge(activity, intent);
Log.e("fang", "b: " + b);
if (!b) {
try {
activity.startActivity(intent);
} catch (ActivityNotFoundException e) {
Log.e("fang", "ActivityNotFoundException: Constants.ERROR_NO_MARKET");
}
} else {
Log.e("fang", "ActivityNotFoundException: Constants.ERROR_NO_MARKET");
}
}