某些电话仅在第一次建立连接时提示用户许可。当 MIDlet 尝试建立 HTTP 连接时,其他人会弹出权限提示!如果我们想抑制提示,有哪些选项?
我们可以只使用一个 CA(证书颁发机构)签署 JAR 并让它在所有设备上工作吗?我们是否必须在每次发布时为签名付费?
是否可以创建我们自己的 CA 证书并告诉我们的客户将其安装在该设备上?
或者,普通的套接字连接似乎不会受到影响。J2ME 的 TCP 上是否有免费的 HTTP 实现?
某些电话允许您手动更改设置以在每个会话中设置一次。或尝试添加
MIDlet-Permissions: javax.microedition.io.connector.http
到 jad 文件。
是的,如果构建使用大多数设备上可用的根证书进行签名,例如 Verisign Class 3 证书
作为一项安全措施,设备不允许您安装自己的证书,即使它是从 CA 获得的。
普通套接字连接可能会增加客户端处理数据的开销。此外,还涉及一些安全问题。
签署 JAR 并不能保证在所有手机和所有网络上抑制这些提示。它可能对某些人有效。AFAIK,您通常需要为每个构建签名;因此,如果您在许多手机上使用相同的版本,您只需签名一次。
您可以通过套接字编写自己的 HTTP 实现,但请注意 Socket 实现不允许访问端口 80 和 8080(同样是 AFAIK)。
遇到多个 HTTP 提示时,您最好的选择是将用户引导至其手机菜单中的 MIDlet 权限设置;这应该改为“询问一次”。
HTH,时髦的兄弟
Java Verifieds UTI 根证书并非在所有手机/网络组合上,对于受信任第三方中的其他域也是如此,例如 Verisign 和 Thawte(对于这些机构,特别是摩托罗拉设备)
可以公平地说,UTI 证书可能是为您提供最多手机覆盖范围的证书
要禁止 HTTP 连接提示,签署应用程序是唯一的选择。另一种方法是在预售手机上预装,但即使是手机制造商也需要签名的 jad/jars。
让一组 jad/jar 在不同的设备上工作并不依赖于签名,而是你如何设计一个应用程序。如果你能解决这个问题,那么是的,你可以让一个签名的 jad/jar 在多个设备上工作。
我不知道创建我们自己的证书并要求客户安装它们。我不认为它有效,因为我认为这是不可能的。
如果您知道自己在做什么,那么基于 TCP 的 HTTP 是一个相当简单的实现,但我不知道它有任何免费的实现。
获得 Java 验证,您会发现在所有网络和手机上 - 用户每次启动应用程序以授权连接时只会收到一次提示。