0

在我的 Eclipse 工作区中,我有我的主应用程序:A 并且我有另一个功能齐全的应用程序:B

我已将应用程序 A 配置为通过使用 Intent 单击按钮打开应用程序 B 并且它可以工作。

这是问题:

在应用程序 BI 中需要接收 EXTRA_MESSAGE。但是,我无法访问该信息,因为应用程序 B 无法识别应用程序 A:

String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE_DESC);

指出“MainActivity”无法解析为变量。

*附录:我正在处理应用程序 B 的实际代码,因为在应用程序 A 中打开类引用会给我一个不可编辑的显示。

看来我需要更改应用程序 B 的清单,并将应用程序 A 添加到 B 的构建路径中……这看起来很混乱,而且对重用不友好。

感谢您的任何帮助

4

2 回答 2

1

有趣的问题。

Intent.getStringExtra() 的参数是一个包含与扩展数据关联的键的字符串。要获取该数据,您需要知道key,而不是它来自的应用程序或 Activity 的名称。有时,开发人员会将应用程序的包名称添加到键值中,但键不可能是单独的包名称、发送活动的名称或发送应用程序的名称。

如果您知道扩展数据的存储方式,请找到键值并使用它来检索数据。对于公开其 Intent 的应用程序,您应该能够找到它。

否则,您无法按设计检索扩展数据。这是一项安全功能,可防止未经授权的应用程序从 Intent 读取数据。

于 2013-09-18T23:20:17.757 回答
0

为什么不在 app A 和 B 之间使用共享库。在 project.properties 文件中,您可以提及此共享库的路径。使用android.library.reference

但是对于进程间通信,最好使用AIDL。

于 2013-09-18T23:18:04.783 回答