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类的字段。我遇到的第一个想法是使用抽象类并在版本> = 21时扩展它,但是我将不得不声明不同的 ArrayList,我不确定我该怎么做。也许这不是最好的方法......

有任何想法吗...?

感谢您的意见

4

2 回答 2

0

我遇到的问题是 MediaSession 是属于 Android API 版本 21 的类,我正在尝试从版本 14 开始制作应用程序。

查看Android 支持库,似乎有一个向后兼容的 MediaSession 版本,称为MediaSessionCompat

于 2015-08-04T18:14:39.773 回答
0

user3829751 的答案看起来很适合这种情况。

对于这个一般性问题,我会引导您提出这个问题:以编程方式获取设备的 Android API 级别?

还要检查@TargetApi 注释。您可以将“版本 21”提取到方法中,并且仅在版本 21 的运行时调用它。您可以在此处查看示例:https ://stackoverflow.com/a/18449951/3032209

于 2015-08-04T18:25:56.810 回答