例如,我想知道如果我开发一个同时包含 WMA 软件包(1.1 和 2.0)的应用程序,然后将其部署到仅支持 WMA 1.1 的旧手机型号上,该手机是否会禁用 2.0 软件包?
代码在包之间的设置功能没有差异,但 2.0 包为该代码提供了额外的功能,最终对于更新的手机来说是最佳的。
最佳答案
我会考虑使用 Class.forName
根据设备是否支持 WMA 2 加载适当的代码
class SpecificFeatureFactory {
SpecificFeature get(boolean isWma2) {
return (SpecificFeature)Class.forName(isWma2 ? "Rich" : "Poor");
}
}
class Rich implements SpecificFeature {
@Override
long doSomething(String className, Date dateAlarm) throws Exception {
return PushRegistry.registerAlarm(className, dateAlarm);
}
}
class Poor implements SpecificFeature {
@Override
long doSomething(String className, Date dateAlarm) throws Exception {
return -1;
}
}
interface SpecificFeature {
long doSomething(String className, Date dateAlarm) throws Exception;
}
根据我的内存,WMA 规范描述了应用程序如何确定它是 1.1
还是 2.0
。
关于sms - J2ME 手机是否具有针对不兼容包的自动禁用功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7026604/