たとえば、WMAパッケージ(1.1と2.0)の両方でAppを開発し、それをWMA 1.1のみでサポートされている古い携帯電話モデルにデプロイする場合、電話で2.0パッケージを無効にするかどうかを知りたいですか?J2ME do携帯電話は互換性のないパッケージに対して自動無効化機能を備えていますか?
パッケージ間で設定されているコードの違いはありませんが、2.0パッケージでは、そのコードに追加の機能が追加され、最近の携帯電話に最適です。
たとえば、WMAパッケージ(1.1と2.0)の両方でAppを開発し、それをWMA 1.1のみでサポートされている古い携帯電話モデルにデプロイする場合、電話で2.0パッケージを無効にするかどうかを知りたいですか?J2ME do携帯電話は互換性のないパッケージに対して自動無効化機能を備えていますか?
パッケージ間で設定されているコードの違いはありませんが、2.0パッケージでは、そのコードに追加の機能が追加され、最近の携帯電話に最適です。
すべきではないアプリケーションが、それはだかどうかを確認する方法について説明します1.1
または2.0
です。
新しい機能をサポートしていない古い電話機ではエラーになります。
Preprocessorを使用すると、ソースコードの1つのパッケージから古い電話と新しい電話のさまざまなバージョンをコンパイルできます。
サイズが問題でない場合は、必ずしも前処理を使用する必要はありません。 WMA 2.0にのみ存在するクラスを使用しない場合は、NoSuchMethodErrorsをトリップするだけです。これを検討してください。
public void doSomeThing()
{
try{
callWMA2_0Method();
}
catch(NoSuchMethodError e)
{
// We're WMA 1.1 then
callWMA1_1Method();
}
}
もちろん、もちろんWMA 2.0に対してのみコンパイルできます。しかし、それは、私は、デバイスは、私の記憶のWMA仕様パー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;
}
をサポートしているかどうかに応じて適切なコードをロードするためにClass.forName
を使用して検討したい問題