2

Java Mobile でオプションの API を使用する正しい方法は何ですか?

  • アプリの異なるバージョンを作成する必要がありますか?
  • それとも、を使用して実行時に API の可用性を確認するだけで十分System.getProperty()ですか?

アプリで JSR-256 (センサー API) をサポートしたいとします。javax.microedition.sensorデバイスがサポートしていない場合、これらの型のクラスをインポートして変数を登録すると、アプリが壊れますか?

その状況を処理するためのかなり標準的な方法があるに違いないと確信しています。

ありがとう!

4

2 に答える 2

2

システムプロパティまたはClass.forName()を使用して、APIが使用可能かどうかを確認できます。これらのAPIを使用するクラスが、それらをサポートしていない受話器にロードされないようにしてください。多くの異なる受話器をサポートするミッドレットの1つのバージョンを作成できます。

于 2010-08-29T07:50:13.300 に答える
1

どの API がサポートされているかを判断するには、2 つの方法があります。システム プロパティ ルートを使用する場合は、こちらのリストを参照してください。クラスも使用できますが、注意が必要です。難しい問題は、クラスがロードされないようにすることです。

アルバスがリンクしている記事には、次の引用があります。

クラス ローダー (以下を参照) は、最終的な使用を見越して、早い段階で型をロードすることを選択できます。この戦略が選択された場合、クラス・ローダーは、型が最初にアクティブに使用されるまで、ロード中に発生した問題を (java.lang.LinkageError のサブクラスをスローすることによって) 報告してはなりません。

そのため、クラスが実行時に実際に使用されていない場合、エラーは発生しません。もちろん、Java ME には多くの実装があり、それらすべてを信頼して正しく実装することが安全かどうかはわかりません。

于 2011-01-20T00:30:49.140 に答える