public static void processActivityIntentIfNeed(Object activityclientrecord) {
try {
Class ActivityClientRecord_Class = Class.forName("android.app.ActivityThread$ActivityClientRecord");
Field intent_Field = ActivityClientRecord_Class.getDeclaredField("intent");
intent_Field.setAccessible(true);
Intent intent = (Intent) intent_Field.get(activityclientrecord);
if (intent.getComponent() != null && intent.getComponent().getClassName().startsWith(String.format("%s%s",BridgeUtil.COMPONENT_PACKAGE,BridgeUtil.PROXY_PREFIX))){
Field activityInfo_Field = ActivityClientRecord_Class.getDeclaredField("activityInfo");
activityInfo_Field.setAccessible(true);
Intent originalIntent = unWrapperOriginalIntent(intent);
ActivityInfo info = AdditionalPackageManager.getInstance().getNewComponentInfo(originalIntent.getComponent(),ActivityInfo.class);
activityInfo_Field.set(activityclientrecord, info);
intent_Field.set(activityclientrecord,originalIntent);
}
} catch (Throwable e) {
e.printStackTrace();
}
}
ActivityBridge.java 文件源码
java
阅读 35
收藏 0
点赞 0
评论 0
项目:atlas
作者:
评论列表
文章目录