从另一个应用程序启动活动? (使用AndroidAnnotations)

时间:2016-08-24 19:14:53

标签: android android-activity android-annotations

如何在App(主)内启动AndroidAnnotations Activity_ 自外部活动(另一个应用程序)。

这是我目前的代码:

Intent codeScannerActivity = new Intent(PACKAGE, CODE_SCANNER_ACTIVITY);
codeScannerActivity.putExtra("codeScannerType", CameraUtils.CODE_SCANNER_SINGLE);
startActivityForResult(codeScannerActivity, Core.ActivityResult.RequestCode.CODE_SCANNER);

其中 PACKAGE =“main.app.package”

CODE_SCANNER_ACTIVITY = PACKAGE +“。activity.MyActivity _”

但是日志抛出:

  

android.content.ActivityNotFoundException:找不到处理Intent的活动{act = main.app.package dat = main.app.package.activity.MyActivity _ (已额外的)}

活动在Manifest的主应用程序中定义,类别为“etc.MyActivity _”。

2 个答案:

答案 0 :(得分:2)

您正在错误地构建Intent。对于您正在使用的构造函数,第一个参数被解释为“action”,第二个参数被解释为URI。该错误表示没有可以响应操作“main.app.package”和URI“main.app.package.activity.MyActivity _”的活动。

要解决此问题,请先阅读Android Developer网站上的Starting Another ActivityIntent javadocs。特别是查看可用构造函数的文档。可能有一个更适合您的目的而不是您尝试使用的目的。 Intent文档包含标准Activity操作的列表。如果您要开始特定活动,则应使用Intent (Context packageContext, Class<?> cls)

Intent intent = new Intent(this, main.app.package.activity.MyActivity_.class);

答案 1 :(得分:1)

我创造了错误的意图,这是正确的方法:

Intent codeScannerActivity = new Intent();
codeScannerActivity.setComponent(new ComponentName(PACKAGE, CODE_SCANNER_ACTIVITY));
codeScannerActivity.putExtra("codeScannerType", CameraUtils.CODE_SCANNER_SINGLE);
startActivityForResult(codeScannerActivity, Core.ActivityResult.RequestCode.CODE_SCANNER);