在我的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 ......这看起来很混乱,并且不能重复使用。
感谢您的帮助
答案 0 :(得分:1)
有趣的问题。
Intent.getStringExtra()的参数是一个String,其中包含与扩展数据关联的键。要获取该数据,您需要知道密钥,而不是应用程序的名称或来自它的Activity。有时,开发人员会将应用程序的软件包名称添加到密钥值中,但密钥可能不是单独的软件包名称,也不是发送活动的名称或发送应用程序。
如果您知道如何存储扩展数据,请找到键值并使用它来检索数据。对于使其Intent公开可用的应用程序,您应该能够找到它。
否则,您无法按设计检索扩展数据。这是一项安全功能,可防止未经授权的应用程序从Intent中读取数据。
答案 1 :(得分:0)
为什么不在app A和B之间使用共享库。在project.properties文件中,您可以提及此共享库的路径。使用android.library.reference
但对于进程间通信,最好使用AIDL。