Как и заголовок, я хочу подключить третье приложение и могу вызвать активность своего приложения из активности третьего приложения. Итак, я хочу получить контекст третьего приложения, как мне это сделать?Xposed: Как получить контекст подключенного приложения?
Комплект третьего приложения: com.ss.android.gallery.heavy
, пакет моего проекта: com.example.hao.hookstartupinterfacetest
;
Моего Xposed Module.java (MainActivity здесь деятельность моего проекта)
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);
}
});
SplashActivity.class (Это в третьем приложении, MainActivity здесь принадлежит третьему приложению.)
public class SplashActivity extends BaseSplashActivity{
protected Intent getMainIntent(){
return new Intent(this, MainActivity.class);
}
}
Ошибка
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)
[AndroidAppHelper.currentApplication] (http://api.xposed.info/reference/android/app/AndroidAppHelper.html#currentApplication()) –
Привет, вы замечательный, я решаю проблему, но она не может позвонить мне активность приложения. Вы знаете принцип? – hao
Что вы пытаетесь сделать? Измените свой вопрос и добавьте код и любые ошибки, с которыми вы столкнулись. –