2010-04-05 26 views
1

有没有办法确定设备具有哪种数据计划,以便在数据计划不可用时应用程序提供的体验较少?我想连接器工厂仍然能够返回给我一个HTTPConnection,但它会花费用户对大量数据的严重金钱,我想很好,并且阻止这种情况发生。j2me MIDP:检测手机是否有数据计划

我认为会有一种方法来查询MIDP API中的设备功能,但也许它是在CLDC中?

+0

感谢您的答案家伙。自从他首先回答它之后,必须把它交给funkybro。一切都很有帮助,我很感激。 – 2010-04-07 15:05:12

回答

0

不,没有办法做到这一点。

+0

甚至没有办法检测用户是否通过WiFi连接?我知道Java想要从我这里抽象出实际的连接,但是这些信息可以通过Symbian C++之类的东西获得。 – 2010-04-06 11:42:37

+0

不,真的没有办法!所有你得到的是一个HttpConnection,没有连接机制或数据计划的指示。 您可以设置一个用户可以连接的服务器,并测量它们之间的连接速度,如果速度非常快,也许可以推断出它们在使用WiFi。但是现在3/3.5G的速度相当快,您可能最终只会通过昂贵的按每KB支付的数据连接发送大量数据! 如果他们关心成本,最好也许只是邀请用户选择一个“轻量级”数据选项。 – funkybro 2010-04-07 07:20:47

0

据我所知,没有办法做到这一点。为了解决这个问题,首次下载时,我们提供了一个大胆的字母警告,说我们的应用程序需要数据计划。你可以做类似的事情。

或者您可以在第一次下载时为用户提供一个选项,以说明他是否有数据计划,并且如果他没有提供降级的用户体验。不要忘记将它作为应用程序设置中的一个选项,并允许用户稍后启用数据服务,因为他/她可能会获得数据计划并希望使用您的应用程序。

1

既然你在你的评论中提到它,你可以创建一个Symbian OS C++应用程序,它只通过一组特定的Wi-Fi接入点连接(并且如果这些接入点都不可用,就保持离线状态),但是我不能想办法找出当前的用户数据计划或给定的Wi-Fi网络是否免费。

在J2ME中都没有这种功能,至少在实现像JSR 307之类的功能时才可用。

您可能想要了解Nokia IAPInfo API在真实手机(包括索尼爱立信和三星Series60手机)上的表现如何,因为它与您想要的最接近。