2010-06-08 104 views
0

我读了一些类似的帖子在这个网站上处理似乎是相同的问题和答复似乎并没有真正为我澄清的事情。黑莓应用程序在模拟器,但不是设备的作品

我的应用程序在模拟器中工作正常。我相信我在使用OS 4.6的Bold 9000。该应用已签署。

我的应用程序通过3G进行HTTP调用来获取XML结果。类型是application/xhtml + xml。 在设备中,它没有提供任何错误。它不会造成错误的可视迹象。我告诉try catch将结果打印到屏幕上,而我什么也没得到。 HttpConnection是从演示中采取的并且在sim上运行良好。

既然它没有提供任何错误,我开始反思当项目开始时我回想起来的东西。装置侧=真的吗?像那样的东西? 我的要求是简单的HttpConnection连接=(HttpConnection)Connector.open(url); 其中url只是一个标准的网址,没有得到变数。 根据我在屏幕角落看到的连接箭头的时间量,我假设应用程序正在向我的服务器发起初始通信,然后得到一个不好的结果,或者它得到结果并且持久性存储不起作用如预期。

我不知道从哪里开始。发布代码将是荒谬的,因为它基本上是我的整个应用程序。

我想我的问题是,如果有人知道设备与模拟器的任何主要区别可能导致像http连接或持久性存储失败? 建立设置?操作系统限制?在开始设备测试之前,我可能只知道每个人都应该做的任何标准程序?

谢谢

+0

请回过头去标记你的其他问题的答案是正确的。人们将更有可能提供帮助。 – 2010-06-08 23:51:18

+0

谢谢。我没有注意到我可以做到这一点。尽管我的大部分问题都没有真正的答案。在这个网站上的习惯是否只是将答案指向指向正确方向的人的答案,尽管答案不是真正需要的?我不想赞扬我自己的答案,因为我通常会将解决方案发布到我自己的问题上,如果我弄明白的话。 – Kai 2010-06-09 18:56:55

+0

用您提出的解决方案编辑原始问题会更好。如果您使用答案,它可能会被埋在已提交的其他答案中(如果有的话)。 – 2010-06-10 00:04:37

回答

0

我会对此作出评论,但我认为我没有足够的代表性,所以我只会回答并希望这不会因为在某些链接中粘贴而弄虚作假。

过去一周,我一直在研究我们的应用上的这种确切的网络问题,而且其他人已经指出,这确实很棘手。这里有两个链接确实帮助我们在不同设备上使用HTTP,特别是那些不提供ConnectionFactory的旧设备。

http://supportforums.blackberry.com/t5/Java-Development/Connecting-your-BlackBerry-http-and-socket-connections-to-the/td-p/206242

第一个有一些代码示例,包括查询系统的ServiceBook和CoverageInfo类做出什么样的连接将工作决策的论证。

1

这对我来说是一个艰难的! 正如乔纳森说,你必须在网址中添加一些参数才能使其在设备上工作。你不应该手工做,而是使用ConnectionFactory。

正如你可能会这样做,它只会使它工作,但它不!

真正的问题是,网址已被改变,因为它有; interface = wifi; deviceside = true(在我的情况下)。根据接受您的请求的网络服务器,这可能会破坏代码。

我试过和一个可行的解决办法是尽量happend假参数如有

&foo=true -> &foo=true;deviceside=true 

这将导致作为网络服务器标准的参数,但您的设备将使用它来驱动你的连接。

在模拟器上,这个工作没有这个额外的代码,因为它后面有一个BIS服务器给你。在设备上(与我的情况一样)并不是因为我使用的是未注册的开发设备,没有SIM(只是wifi)。

另一点是HttpConnection类不处理HTTP 302重定向,如果你得到一个你必须手动处理它。

相关问题