QQ浏览器 v12.2.3.7053版本的 MD5 值为:8285ab3059e5c8b521a264dfbc5c3685
以下内容为反编译后的 MttLoader.java 源代码,内容仅作参考
package com.tencent.common.utils;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.net.Uri;
import android.text.TextUtils;
import com.tencent.common.http.NetUtils;
import com.tencent.mtt.base.utils.GetTask;
import com.tencent.mtt.compliance.MethodDelegate;
import com.tencent.mtt.external.qrcode.common.ActionConstants2;
import java.net.URLEncoder;
import java.util.List;
public class MttLoader {
public static class BrowserInfo {
public int f10261a = -1;
public int f10262b = -1;
public String f10263c = "";
public String f10264d = "";
}
public static class BrowserPackageInfo {
public String f10265a;
public String f10266b;
private BrowserPackageInfo() {
this.f10265a = "";
this.f10266b = "";
}
}
public static Intent a(Context context, String str) {
Uri parse;
BrowserPackageInfo a2;
String str2;
String str3;
Intent intent = null;
if (context == null) {
return null;
}
if (!a(str)) {
str = NetUtils.SCHEME_HTTP + str;
}
try {
parse = Uri.parse(str);
} catch (Exception unused) {
}
if (parse == null) {
return null;
}
if (parse.getScheme().toLowerCase().equals(GetTask.ICustomForegroundPredication.QB) && !a(context)) {
parse = Uri.parse("https://mdc.html5.qq.com/mh?channel_id=50079&u=" + URLEncoder.encode(str, "UTF-8"));
}
BrowserInfo b2 = b(context);
if (b2.f10261a == -1) {
return null;
}
if (b2.f10261a == 2 && b2.f10262b < 33) {
return null;
}
intent = new Intent("android.intent.action.VIEW");
if (b2.f10261a == 2) {
if (b2.f10262b >= 33 && b2.f10262b <= 39) {
str3 = "com.tencent.mtt.MainActivity";
} else if (b2.f10262b >= 40 && b2.f10262b <= 45) {
str3 = "com.tencent.mtt.SplashActivity";
} else if (b2.f10262b >= 46) {
intent = new Intent(ActionConstants2.f56473d);
a2 = a(context, parse);
if (a2 != null) {
}
}
intent.setClassName("com.tencent.mtt", str3);
} else if (b2.f10261a == 1) {
if (b2.f10262b != 1) {
str2 = b2.f10262b == 2 ? "com.tencent.qbx5.SplashActivity" : "com.tencent.qbx5.MainActivity";
}
intent.setClassName("com.tencent.qbx5", str2);
} else if (b2.f10261a != 0) {
intent = new Intent(ActionConstants2.f56473d);
a2 = a(context, parse);
if (a2 != null) {
}
} else if (b2.f10262b >= 4 && b2.f10262b <= 6) {
intent.setClassName("com.tencent.qbx", "com.tencent.qbx.SplashActivity");
} else if (b2.f10262b > 6) {
intent = new Intent(ActionConstants2.f56473d);
a2 = a(context, parse);
if (a2 != null) {
}
}
intent.setData(parse);
intent.addFlags(268435456);
return intent;
}
private static BrowserPackageInfo a(Context context, Uri uri) {
Intent intent = new Intent(ActionConstants2.f56473d);
intent.setData(uri);
List<ResolveInfo> queryIntentActivities = MethodDelegate.queryIntentActivities(context.getPackageManager(), intent, 0);
if (queryIntentActivities.size() <= 0) {
return null;
}
BrowserPackageInfo browserPackageInfo = new BrowserPackageInfo();
for (ResolveInfo resolveInfo : queryIntentActivities) {
String str = resolveInfo.activityInfo.packageName;
if (str.contains("com.tencent.mtt")) {
browserPackageInfo.f10265a = resolveInfo.activityInfo.name;
browserPackageInfo.f10266b = resolveInfo.activityInfo.packageName;
return browserPackageInfo;
}
if (str.contains("com.tencent.qbx")) {
browserPackageInfo.f10265a = resolveInfo.activityInfo.name;
browserPackageInfo.f10266b = resolveInfo.activityInfo.packageName;
}
}
return browserPackageInfo;
}
public static boolean a(Context context) {
BrowserInfo b2 = b(context);
if (b2.f10261a == -1) {
return false;
}
return b2.f10261a != 2 || b2.f10262b >= 42;
}
private static boolean a(String str) {
if (str == null || str.length() == 0) {
return false;
}
String trim = str.trim();
int indexOf = trim.toLowerCase().indexOf("://");
int indexOf2 = trim.toLowerCase().indexOf(46);
if (indexOf <= 0 || indexOf2 <= 0 || indexOf <= indexOf2) {
return trim.toLowerCase().contains("://");
}
return false;
}
public static BrowserInfo b(Context context) {
BrowserInfo browserInfo = new BrowserInfo();
try {
PackageManager packageManager = context.getPackageManager();
PackageInfo packageInfo = null;
try {
packageInfo = packageManager.getPackageInfo("com.tencent.mtt", 0);
browserInfo.f10261a = 2;
browserInfo.f10263c = "ADRQB_";
if (packageInfo != null && packageInfo.versionCode > 420000) {
browserInfo.f10264d = packageInfo.versionName;
browserInfo.f10262b = packageInfo.versionCode;
browserInfo.f10263c += packageInfo.versionName.replaceAll("\\.", "");
return browserInfo;
}
} catch (PackageManager.NameNotFoundException unused) {
}
try {
try {
try {
try {
try {
packageInfo = packageManager.getPackageInfo("com.tencent.qbx", 0);
browserInfo.f10261a = 0;
browserInfo.f10263c = "ADRQBX_";
} catch (PackageManager.NameNotFoundException unused2) {
packageInfo = packageManager.getPackageInfo("com.tencent.qbx5", 0);
browserInfo.f10261a = 1;
browserInfo.f10263c = "ADRQBX5_";
}
} catch (PackageManager.NameNotFoundException unused3) {
packageInfo = packageManager.getPackageInfo("com.tencent.mtt", 0);
browserInfo.f10261a = 2;
browserInfo.f10263c = "ADRQB_";
}
} catch (Exception unused4) {
}
} catch (Exception unused5) {
BrowserPackageInfo a2 = a(context, Uri.parse("https://mdc.html5.qq.com/mh?channel_id=50079&u="));
if (a2 != null && !TextUtils.isEmpty(a2.f10266b)) {
PackageInfo packageInfo2 = packageManager.getPackageInfo(a2.f10266b, 0);
try {
browserInfo.f10261a = 2;
browserInfo.f10263c = "ADRQB_";
} catch (Exception unused6) {
}
packageInfo = packageInfo2;
}
}
} catch (PackageManager.NameNotFoundException unused7) {
packageInfo = packageManager.getPackageInfo("com.tencent.mtt.x86", 0);
browserInfo.f10261a = 2;
browserInfo.f10263c = "ADRQB_";
}
if (packageInfo != null) {
browserInfo.f10264d = packageInfo.versionName;
browserInfo.f10262b = packageInfo.versionCode;
browserInfo.f10263c += packageInfo.versionName.replaceAll("\\.", "");
}
} catch (Exception unused8) {
}
return browserInfo;
}
}