从另一个应用程序接收Intent EXTRA_MESSAGE

时间:2013-09-18 23:10:29

标签: android android-intent android-activity

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

我已经配置了应用程序A,通过使用Intent单击按钮来打开应用程序B,它可以正常工作。

以下是问题:

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

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

声明“MainActivity”无法解析为变量。

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

似乎我需要更改应用程序B的清单,并在B的构建路径中添加应用程序A ......这看起来很混乱,并且不能重复使用。

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

有趣的问题。

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

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

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

答案 1 :(得分:0)

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

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