在我的应用程序中,我尝试使用网络运营商互联网连接到TCP服务器并使用以下连接字符串:
URL = “套接字://” + IP + “:” +端口+ “;装置侧= TRUE; connectionTimeout = 30000; APN =; tunnelauthusername =; tunnelauthpassword =;”;
我可以通过手机的浏览器连接到互联网,但无法通过应用程序连接到TCP服务器。
在我的设备中,默认情况下禁用APN身份验证,并且APN,Userid / Password字段为空,这就是为什么我将这些参数作为连接字符串中的空白值。
当我尝试使用以下字符串通过wifi网络连接时:
url="socket://"+ip+":"+port+";deviceside=true;interface=wifi;connectionTimeout=30000";
我可以通过APN连接到服务器但不能连接到服务器。
请帮帮我。
我只是被困在这里找不到任何出路。
由于
答案 0 :(得分:1)
有多种连接服务器的方法。您正在做的是指定在您设置的连接后缀中使用的方法。您可以在连接后缀中使用的选项记录在BB KB文章中:
Different-ways-to-make-an-HTTP-or-socket-connection
如果你支持真正的旧手机(OS 5.0之前版本),那么这是你唯一的选择。但这样做的诀窍是你必须弄清楚在你提出请求时你的设备上有什么连接方法。互联网上有大量代码浮出水面,其中大部分都是可疑的。
如果您是OS 5.0或更高版本,那么您可以使用更高级的API(ConnectionFactory)来简化这一过程,并在OS 6.0中使用更高级的功能。这些都记录在BB Java微型网站上,请参见此处:
您使用的选项是GCF框架。如果您仅支持OS 5.0及更高版本,我建议您调查“网络API”。您还可以调查“旧版操作系统的网络API替代方案”。
这不能回答常见的问题,“浏览器如何连接,我的应用程序无法连接?”。这是因为浏览器使用称为BIS-B的特殊BlackBerry连接方法。 BIS-B的好处在于它适用于任何具有BlackBerry资费的BB手机,无需配置。不好的是,你没有权利访问它。要获得访问权限,最简单的方法是请求推送支持,即使您不打算立即使用它,但可能在将来使用它。这在上面的页面中记录。
但回到你的问题。 TCP配置中的APN值未设置,并不意味着您不必设置它们。如果有人将“; deviceside = true”编码为连接字符串,则选项中指定的值将用作默认值 - 用户可以为自己设置这些值,应用程序开发人员不编写任何代码。这些值特定于您的运营商。因此,搜索以找出您需要使用的值。您可以将这些值放在TCP选项中(因此不要在连接后缀中对它们进行编码),也不要将它们放在连接后缀中。如果您无法找到应该放在那里的东西,您需要询问您的运营商。
在大多数BlackBerry关税中,通过APN使用直接TCP可能会使用户花费一些数据,并且还需要配置。或者,您可以使用WAP 2,这可能也会花费数据,但不需要任何配置。这两者的优势在于它们可以在不使用BlackBerry资费的手机上使用。
我的建议是使用ConnectionFactory(网络API)查看连接,但这仅适用于OS 5.0及更高版本。