[dev_minibus-d_230425_3.2.0] 优化可能出现bug的代码

This commit is contained in:
lixiaopeng
2023-05-29 14:15:16 +08:00
parent 5a9da1f641
commit 8f7758aca2
7 changed files with 59 additions and 36 deletions

View File

@@ -2176,8 +2176,12 @@ public final class ActivityUtils {
mGetHomeActivities = method;
}
}
mReplacePreferredActivity.setAccessible(true);
mGetHomeActivities.setAccessible(true);
if (mReplacePreferredActivity != null) {
mReplacePreferredActivity.setAccessible(true);
}
if (mGetHomeActivities != null) {
mGetHomeActivities.setAccessible(true);
}
IntentFilter HOME_FILTER = new IntentFilter(Intent.ACTION_MAIN);
HOME_FILTER.addCategory(Intent.CATEGORY_HOME);
@@ -2185,18 +2189,22 @@ public final class ActivityUtils {
final List<ComponentName> allComponents = new ArrayList<>();
final List<ResolveInfo> homeActivities = new ArrayList<>();
try {
mGetHomeActivities.invoke(packageManager, homeActivities);
if (mGetHomeActivities != null) {
mGetHomeActivities.invoke(packageManager, homeActivities);
}
for (ResolveInfo info : homeActivities) {
final ActivityInfo appInfo = info.activityInfo;
ComponentName activityName = new ComponentName(appInfo.packageName, appInfo.name);
allComponents.add(activityName);
}
mReplacePreferredActivity.invoke(
packageManager,
HOME_FILTER,
IntentFilter.MATCH_CATEGORY_EMPTY,
allComponents.toArray(new ComponentName[0]),
componentName);
if (mReplacePreferredActivity != null) {
mReplacePreferredActivity.invoke(
packageManager,
HOME_FILTER,
IntentFilter.MATCH_CATEGORY_EMPTY,
allComponents.toArray(new ComponentName[0]),
componentName);
}
} catch (IllegalAccessException | InvocationTargetException e) {
e.printStackTrace();
}