Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在 Java Mobile 中使用可选 API的正确方法是什么?
System.getProperty()
假设我希望我的应用程序支持 JSR-256(传感器 API)。javax.microedition.sensor如果设备不支持,从这些类型的导入类和注册变量会破坏我的应用程序吗?
javax.microedition.sensor
我确信必须有一种非常标准的方法来处理这种情况。
谢谢!
您可以使用系统属性或 Class.forName() 来查看 API 是否可用。只需确保使用这些 API 的类不会加载到不支持它们的手机上。您可以制作一个支持多种不同手机的 midlet 版本。
有两种方法可以确定支持哪些 API。如果您要走系统属性路线,请查看此处的列表。也可以使用类,尽管您必须小心。更难的问题是确保类不会被加载:
阿不思链接到的文章有以下引用:
类加载器(见下文)可以选择在预期最终使用的早期加载类型。如果选择此策略,则类加载器不得报告在加载期间遇到的任何问题(通过抛出 java.lang.LinkageError 的子类),直到该类型第一次活动使用。
因此,如果该类实际上并未在运行时使用,那么您不应该遇到任何错误。当然,Java ME 有很多实现,我不确定是否可以完全信任它们来正确实现它。