0

私は主な活動からこのクラスを使用しています:

public class MediaInfo {
    public String name;
    public String label;
    // ... (other String and int fields)
    public MediaSession mSession;
}

ArrayList 内:

public class MainActivity extends ActionBarActivity implements AsyncResponse {

    private static final String TAG = "MainActivity";

    ArrayList<MediaInfo> myMediaList;
    private Context mContext;

    public void onCreate(Bundle savedInstanceState) {
        // ...
    }

    // ...
}

私が抱えている問題は、MediaSession が Android API バージョン 21 に属するクラスであり、バージョン 14 以降のアプリを作成しようとしていることです。

バージョンが < 21 の場合、アクティビティ (またはクラス) が MediaSession クラスを含むフィールドを無視するようにしたいと考えています。異なる ArrayLists を宣言する必要があり、どうすればそれができるかわかりません。そして、おそらくこれは最善の方法ではありません...

何か案は...?

アドバイスありがとうございます

4

2 に答える 2

0

user3829751 の答えは、この場合に適しています。

この一般的な問題について、私は次の質問に導きます:デバイスの Android API レベルをプログラムで取得しますか?

@TargetApi アノテーションも確認してください。「バージョン 21」をメソッドに抽出し、ランタイムがバージョン 21 の場合にのみ呼び出すことができます。ここで例を確認できます

于 2015-08-04T18:25:56.810 に答える
0

私が抱えている問題は、MediaSession が Android API バージョン 21 に属するクラスであり、バージョン 14 以降のアプリを作成しようとしていることです。

Android サポート ライブラリを見ると、MediaSessionCompat と呼ばれるMediaSessionの後方互換バージョンがあるようです。

于 2015-08-04T18:14:39.773 に答える