2

在 Java Mobile 中使用可选 API的正确方法是什么?

  • 是否需要制作不同版本的应用程序?
  • 或者在运行时使用检查 API 可用性是否足够System.getProperty()

假设我希望我的应用程序支持 JSR-256(传感器 API)。javax.microedition.sensor如果设备不支持,从这些类型的导入类和注册变量会破坏我的应用程序吗?

我确信必须有一种非常标准的方法来处理这种情况。

谢谢!

4

2 回答 2

2

您可以使用系统属性或 Class.forName() 来查看 API 是否可用。只需确保使用这些 API 的类不会加载到不支持它们的手机上。您可以制作一个支持多种不同手机的 midlet 版本。

于 2010-08-29T07:50:13.300 回答
1

有两种方法可以确定支持哪些 API。如果您要走系统属性路线,请查看此处的列表也可以使用类,尽管您必须小心。更难的问题是确保类不会被加载:

阿不思链接到的文章有以下引用:

类加载器(见下文)可以选择在预期最终使用的早期加载类型。如果选择此策略,则类加载器不得报告在加载期间遇到的任何问题(通过抛出 java.lang.LinkageError 的子类),直到该类型第一次活动使用。

因此,如果该类实际上并未在运行时使用,那么您不应该遇到任何错误。当然,Java ME 有很多实现,我不确定是否可以完全信任它们来正确实现它。

于 2011-01-20T00:30:49.140 回答