与其他黑莓应用程序或可升级的库进行通信

时间:2011-06-08 09:50:03

标签: blackberry

我对RuntimeStore还有一个疑问。 我可以使用RuntimeStore交换字符串。 但我希望对象也能被交换。

示例:3个独立的应用程序有A,B,C。 A创建一个C对象,使用RuntimeStore与B共享它,然后B将使用相同的对象并调用C的方法或数据。

我们可以使用RuntimeStore做这样的事情。 我找不到它。 如果您有任何想法,请与我分享。 感谢。

3 个答案:

答案 0 :(得分:1)

Runtime Store可用于应用程序间通信。只要您的两个应用程序保持相同的数据模式,就不会出现允许升级的问题。

链接上有一个例子可以帮助你实现目标。

答案 1 :(得分:0)

运行时存储可用于交换数据。如果我们能够知道何时是交换的数据,那会更好。您可以使用GlobalEventListener或Notification Manager来实现此目的。使用这些,您可以表达兴趣接收某些类型的事件并注册一个监听器[与按钮上的动作监听器相同]。当发生此类事件时,您可以从运行时存储中读取数据。但是全局事件监听器本身的回调也可以适应数据交换。

希望它有所帮助。!

这是example,供您查看。实际上,这是IPC的一个诚实的例子,真正回答了你的问题。您可能还想考虑您应该交换的数据的安全性。

答案 2 :(得分:0)

我不确定你的意图和目标是什么。让我向您介绍不同的场景,并提供合理的解决方案。

  1. 存在第三方应用程序A,您正在创作应用程序B.现在您的应用程序有兴趣调用A或某些受保护/敏感/个人功能的某些服务。如果是这种情况,您可以使用特定的预定义且众所周知的权限定义here,然后让系统为您提供这些权限。系统反过来询问用户应用程序B正在请求操作列表的许可。向用户呈现UI以请求权限。如果用户授予他们,您的申请将被批准;否则你的申请将被拒绝。
  2. 您是两个应用程序A和B的唯一作者,并且可以完全控制这两个应用程序。您的目标是安全地交换一些数据,即使存在可以嗅探数据的其他流氓应用程序。在这种情况下,您可以使用应用程序管理器的postGlobal事件和全局事件侦听器来指示何时准确交换数据。现在,您可以使用RuntimeStore来交换数据;为了将安全性放在此交换中,您可以使用密钥对数据进行签名并将其放在运行时存储区中。只有可以提供凭据的其他实体才会被授予对运行时存储中您的数据的访问权限。这称为对私有数据的受控访问

    RuntimeStore.put(MY_DATA_ID,new ControlledAccess(myHashtable,codeSigningKey)); //在应用程序A中

    Hashtable myHashtable =(Hashtable)RuntimeStore.get(MY_DATA_ID,codeSigningKey); //在应用程序B中

  3. 通知管理员也可以促进申请A和B之间的通知。

  4. 所以,让我们知道你究竟想要完成什么。因此,我们可以引导您进行代码示例。