Like the title, I want to hook a third app, and can call my application activity from the third app's activity.So I want to get the third app's context, how should I do?
The third app's package is com.ss.android.gallery.heavy
, My project's package is com.example.hao.hookstartupinterfacetest
;
My Xposed Module.java(MainActivity here is my project's activity)
XposedHelpers.findAndHookMethod("com.ss.android.gallery.heavy.activity.SplashActivity",
loadPackageParam.classLoader, "getMainIntent", new XC_MethodReplacement() {
@Override
protected Object replaceHookedMethod(MethodHookParam methodHookParam) throws Throwable {
Context context = (Activity)methodHookParam.getResult();
return new Intent(context, MainActivity.class);
}
});
The SplashActivity.class (It is in the third app, MainActivity here belongs to the third app.)
public class SplashActivity extends BaseSplashActivity{
protected Intent getMainIntent(){
return new Intent(this, MainActivity.class);
}
}
Error
01-18 20:38:23.669 4730-4730/com.ss.android.gallery.heavy E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.ss.android.gallery.heavy, PID: 4730
android.content.ActivityNotFoundException: Unable to find explicit activity class {com.ss.android.gallery.heavy/com.example.hao.hookstartupinterfacetest.MainActivity}; have you declared this activity in your AndroidManifest.xml?
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1777)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1501)
at android.app.Activity.startActivityForResult(Activity.java:3745)
at android.app.Activity.startActivityForResult(Activity.java:3706)
at android.app.Activity.startActivity(Activity.java:4016)
at android.app.Activity.startActivity(Activity.java:3984)
at com.ss.android.gallery.base.activity.BaseSplashActivity.goMainActivity(BaseSplashActivity.java:61)
at com.ss.android.gallery.base.activity.BaseSplashActivity.access$000(BaseSplashActivity.java:17)
at com.ss.android.gallery.base.activity.BaseSplashActivity$1.run(BaseSplashActivity.java:76)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:102)