我在J2me应用程序中遇到问题。
"允许应用程序使用网络发送或接收数据?" .....用按钮选择"是"或"否"。
如果我选择,"否",则没有任何反应。 (我的应用程序在步行和没有网络连接在这种情况下我想关闭应用程序而不是在步行中)
如果我选择,"是",则会出现一个新屏幕,(应用程序工作正常)
答案 0 :(得分:2)
MIDP规范附录中涵盖了您提出的问题:The Recommended Security Policy for GSM/UMTS Compliant Devices。
上述文件非常冗长和复杂。为了便于理解(尽管不太精确),请查看以下文章:Understanding MIDP 2.0's Security Architecture:
...本文介绍了保护用户及其设备免受恶意软件侵害的其他MIDP 2.0功能。您将使用J2ME Wireless Toolkit 2.0 ...来学习如何使用MIDP 2.0的安全架构。
什么是敏感操作?
MIDP 2.0规范定义了一个开放式权限系统。要建立任何类型的网络连接,MIDlet必须具有适当的权限......
答案 1 :(得分:2)
如果在“允许应用程序使用网络发送或接收数据?”中单击“否”。警告,当尝试打开连接时,它将抛出SecurityException 。只需捕获 SecurityException。在catch块中,调用 notifyDestroyed()来关闭应用程序。
StreamConnection s = null;
try {
s = (StreamConnection) Connector.open(searchContactUrl);
//your code
} catch (SecurityException se) {
this.notifyDestroyed();
}
答案 2 :(得分:1)
您正在访问应用程序中的Restricted API。要使用此应用程序,您的应用程序必须使用VesiSign或Thawte等签名证书进行签名。现在遇到你的问题是
按否:
因此,当您按否时,它会自动假定您的选择也是NO,因此下次不会询问。当您在单次运行中下次访问相同的API时,您的应用程序将无法在下次出现时访问此类API。
按是
时因此,当您按是时,您的申请会继续进行。但是,当您再次访问受限api时,它会再次警告您天气可以访问它或不。有些api需要一次性用户输入(是),而有些需要每次访问它们。
所以要避免这个消息,唯一的办法就是签署你的申请。
答案 3 :(得分: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(由诺基亚提供)