SUP101:黑莓在模拟器上工作但不在设备上工作

时间:2011-10-11 17:28:02

标签: blackberry device sup

我遇到了让教程在设备上工作的问题

它在模拟器中运行良好,但是当我尝试在设备上运行它时它不起作用。

我放了一些日志,似乎来自登录功能

===JASONROGERS292C 2480 supAdmin s3pAdmin
[0.0] TAC:TAI.handleRegRsp : ALREADY_REGISTERED
[0.0] TAC:TAI.handleRegRsp : (ALREADY_REGISTERED), registered entry found:{{APN=,id=2,state=CLOSED,waf=WAF[0.0] _3GPP,keepAlive=300,IP=0.0.0.0,dnsSrv=0.0.0.0}}
[0.0] [TMM.TunnelAllocator]:runNotReadyListeners: registered listeners found
[0.0] TAC:TAI.handleListenerDeRegRsp: not existent tunnel in TAC, tid=2
[0.0] SIM cache not loaded

有没有人知道我在设备上运行代码时忘了做什么?

干杯 杰森


编辑:

我正在做的几个链接(我可以发布人们想要的所有代码,但它的标准生成代码形式SUP,这意味着很多代码大声笑)

教程 http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc01214.0200/doc/html/title.html

已完成教程的zip: http://www.sdn.sap.com/irj/bpx/index?rid=/webcontent/uuid/40ea4956-b95c-2e10-11b3-e68c73b2280e


解决方案: 我错过了几件事: 1)指定应用程序应使用Wifi

SUP101DB.getSynchronizationProfile().setString("transport", "WIFI");

2)检查DNS:在我的情况下服务器是我的Windows本地(通过parallels)所以我必须指定ip而不是命名空间

getSynchronizationProfile().setServerName("10.50.30.108");//"JASONSERVER");

1 个答案:

答案 0 :(得分:2)

我下载了SUP 101 - BlackBerry Project并检查了来源。

它不包含通常的BB应用程序形式的网络代码。

但是我看到SUP101.SUP101DB类有以下方法:

private static String getSyncTransportSuffix() {
    com.sybase.persistence.ConnectionProfile syncProfile = 
        getSynchronizationProfile();
    return com.sybase.afx.util.NetworkUtil.getTransportUrlSuffix(syncProfile);
}

因此代码使用com.sybase.afx.util.NetworkUtil来获取url后缀。通过将这样的后缀附加到url,我们向底层BB API说要使用什么网络传输。不幸的来源不包含com.sybase.afx.util.NetworkUtil来查看它是如何工作的。

我应该说,即使使用本机Java BB开发,检测到正确的网络传输也可能变得非常棘手。 OS 5+提供了一个更好的新网络API,但对于较旧的操作系统来说,它很难。此SUP项目使用BlackBerry JRE 4.6.1构建,因此无法使用新的OS 5+网络API。谁知道也许SUP根本无法检测到正确的网络传输?

任何方式,只需要尝试一些想法:

  • 检查设备上的APN设置,有时必须填充它们才能使用直接TCP传输(这取决于无线提供商的要求)。 APN名称/通行证是特定于无线提供商的。通常谷歌搜索允许为提供商找到合适的APN设置。
  • 如果您的设备有WiFi尝试启用它。 SUP应该足够聪明,如果可用的话,更喜欢WiFi。在这种情况下,我认为网络应该没有问题。