【发布时间】:2012-02-24 03:53:29
【问题描述】:
背景: 我有一个带有备用入口点的应用程序。它侦听 SMS 和电子邮件发送的事件。应用程序从“下载”文件夹(由用户)正常启动,并且在发送 SMS 或电子邮件时(在用户确认后)。当应用程序启动时,我必须从持久存储中提取一些标志来做出一些决定。应用程序由 RIM 提供的密钥正确签名。它还通过使用签名授权工具的密钥进行签名,从而为该应用程序隔离持久存储。
问题: 从菜单正常启动时,可以毫无问题地从持久存储中提取数据。但是从备用入口点(从 SMS 和电子邮件发送事件)启动时,无法访问持久存储并显示 ControlledAccess 异常。请注意,我尝试允许应用程序的各种权限。
可能的原因: 尽管应用程序 .cod 文件已由密钥正确签名,但在从备用入口点启动时被视为未签名。因此不允许访问持久存储。
我正在寻找可以帮助我解决问题的解决方案或任何建议。否则,我将不得不放弃我真的不想要的隔离持久存储功能。
【问题讨论】:
-
对于 SMS 电子邮件发送的事件,您是否实现了向操作系统注册的侦听器?如果是这种情况,您的权限问题可能是您所拥有的并不是真正的“备用入口点”。侦听器可能正在执行您的代码,就像在消息应用程序进程中一样。
-
是的,那些监听器是使用 RIM API 类注册的。其实我找到了问题的原因。当发送 SMS 或电子邮件时,应用程序在该 SMS 或电子邮件应用程序的上下文中被调用,这些应用程序显然是外部应用程序。解决方案是使用全局事件侦听器。我可以在这里发布 BB 论坛的链接,但不确定是否允许。
-
干得好,这正是我所期望的。您应该发布您的解决方案并选择它作为答案。你解决了你应该相信,它会结束这个问题。
标签: exception blackberry code-signing persistent-storage alternate