0

Android-8 以降のすべてのバージョンで動作する Android アプリがあります。現在、Android-17 の時点で、使用したい追加の API がありますが、ターゲット SDK を Android-17 に設定するつもりはありません。目標は、Android-17 以降のデバイスが追加の API を使用しながら、古いものは、新しい API の機能の使用をスキップします。

明らかな解決策は、新しい API にリフレクションを使用することですが、新しい Android-17 API からクラスを拡張する新しいクラスを作成する必要があり、これは不可能であるため、使用できません (Proxy と InvocationHandler で試しましたが、インターフェイスに対してのみ機能します)。

これを設計する方法はありますか?できれば、2 つの異なる APK ビルドを作成しないでください。

ありがとう!

4

1 に答える 1

1

新しい API へのすべてのアクセスを if ステートメントでラップします。2.0 以降の Android では、実際にフレームワーク クラスを使用しようとしない限り、フレームワーク クラスが見つからないために例外がスローされません (以前は、ベリファイアはコードを実行する前に、使用されているすべてのクラスが存在することを確認していました)。android.os.Build.VERSION をチェックして、電話が使用しているバージョンを確認します。

于 2013-01-24T14:17:53.413 に答える