Androidプログラミングに関する質問があります。私はアンドロイド2.2以上のアプリケーション(タブレットを含む)をプログラムするつもりです。さまざまなバージョンのAPIニュースが異なる、という問題があります。ダウンロードマネージャは、2.3で初めて完全に実装されています。2.2では、手動でプログラムを作成する必要があります。私はモジュールからアプリケーションをビルドすることを考えています。それぞれのモジュールは、特定のAndroid OSバージョン用です。あなたはメインアプリケーションとしてそれを想像することができますし、実際のOSに応じて、それはAndroid 2.3 APIダウンロードマネージャを起動します(2.2の場合)は私のカスタムダウンロードマネージャを起動します。特定のAndroidバージョン用プログラミング
問題は、コードで解決する方法ですか? 2.2の.javaファイルにDownload Managerのインポートとコードを入力して使用すると、アプリケーションをビルドできません。私はアプリケーションのコアと現在のデバイスのAPIレベルに応じて外部ソースから読み取る他の "モジュール"のみをインストールするDexClassLoaderソリューションを見つけました。それは "汚い"アプローチのように私には聞こえる、APIレベルによって異なる特定のコードを解決する方法は何も "クリーナー"ではないですか?
try {
Class.forName(className);
} catch (ClassNotFoundException e) {
}
例外がある場合:
は、クラス(例えばDownloadManager)は、このようにクラスをロードしようとすることで実行しているシステム上で利用可能であるかどうかを確認する方法は、あり屋
2.2コードがそこにないものに当たらないようにする必要があるので、downloadManagerOldとdownloadManagerNewの2つのクラスに分けて、必要に応じて呼び出します。 – Rob
そうですが、2.2のプロジェクトに両方のバージョン(古いものと新しいもの)を入れると、新しいダウンロードマネージャーのコードが不明なのでプロジェクトをビルドしません – Waypoint
2.3のビルドと2.2のminSDKを設定します。 – Rob