2

我的 J2me 应用程序遇到问题。

“允许应用程序使用网络发送或接收数据?”......用按钮选择“是”或“否”。

如果我选择“否”,那么什么也不会发生。(我的应用程序在步行中,在这种情况下没有网络连接我想关闭不在步行中的应用程序)

如果我选择“是”,则会出现一个新屏幕,(应用程序工作正常)

4

4 回答 4

2

MIDP 规范附录中涵盖了您所询问的内容:适用于 GSM/UMTS 兼容设备的推荐安全策略

上述文件相当冗长和复杂。为了更容易理解(虽然不太精确)的解释,请查看这篇文章:了解 MIDP 2.0 的安全架构

... 本文介绍了保护用户及其设备免受恶意软件侵害的其他 MIDP 2.0 功能。您将使用 J2ME Wireless Toolkit 2.0... 来了解如何使用 MIDP 2.0 的安全架构。

什么是敏感操作?

MIDP 2.0 规范定义了一个开放式的权限系统。要进行任何类型的网络连接,MIDlet 必须具有适当的权限...

于 2012-08-16T11:48:48.810 回答
2

如果在“允许应用程序使用网络发送或接收数据?”中单击“否” alert ,它会在尝试打开连接时抛出 SecurityException 。只需捕获SecurityException。在 catch 块中,调用notifyDestroyed()以关闭应用程序。

StreamConnection s = null;

try {
s = (StreamConnection) Connector.open(searchContactUrl);
//your code
} catch (SecurityException se) {
   this.notifyDestroyed();
}
于 2012-08-16T12:13:07.197 回答
1

您正在访问应用程序中的受限 API。要使用此应用程序,您的应用程序必须使用VesiSignThawte等签名证书进行签名。现在你的问题是

  • 当你按no时:

    因此,当您按“”时,它会自动假定您的选择也将是“否”,因此下次不会询问。当您下一次在单次运行中访问相同的 api 时,您的应用程序将无法在下次出现时访问此类 api。

  • 当你按下

    因此,当您按下时,您的申请会继续进行。但是当您再次访问受限 api 时,它会再次警告您是否可以访问它。有些 api 需要一次用户输入(是),而有些则需要每次访问它们。

因此,要避免此消息,唯一的方法是签署您的应用程序。

于 2012-08-16T13:49:35.193 回答
0

在 Java ME 应用程序中,访问网络数据的安全消息将显示给用户。要删除此消息,应从制造商处签署/证明申请

现在选项是 YES 和 NO 是由你放置的,选项不关闭只使用代码:

// Arrange for the MIDlet to be destroyed
this.notifyDestroyed(); // where this is an instance of the MIDlet

有关申请认证的更多信息:

http://www.developer.nokia.com/Distribute/Packaging_and_signing.xhtml(诺基亚)

于 2012-08-16T11:45:08.780 回答