我在我的主要活动中使用这个课程:
public class MediaInfo {
public String name;
public String label;
// ... (other String and int fields)
public MediaSession mSession;
}
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开始构建应用程序。
我希望活动(或类)在版本为&lt;时,忽略包含MediaSession类的字段。 21.我遇到的第一个想法是使用抽象类并在版本为&gt; = 21时扩展它,但后来我必须声明不同的ArrayLists,我不知道如何做到这一点。也许这不是最好的方式......
任何想法......?
感谢您的建议
答案 0 :(得分:0)
我遇到的问题是MediaSession是一个属于Android API版本21的类,我正在尝试从版本14开始构建应用程序。
查看Android support library,似乎有一个向后兼容的MediaSession版本,名为MediaSessionCompat。
答案 1 :(得分:0)
user3829751的答案看起来很适合这种情况。
对于这个一般性问题,我会引导您回答这个问题:Programmatically obtain the Android API level of a device?
同时检查@TargetApi注释。您可以将“version-21”解压缩到某个方法,并仅在运行时版本21时调用它。您可以在此处查看示例:https://stackoverflow.com/a/18449951/3032209