在较旧的 API 版本上使用已弃用的函数?

Kal*_*iMa 4 filesystems storage android android-file android-api-levels

背景:我正在使用最低 API 级别 17 制作我的应用程序。

我正在寻找获取文件系统大小的方法,并看到了这一点:

http://developer.android.com/reference/android/os/StatFs.html

但是,许多较新的功能仅在 API 级别 18 向上可用,并且旧版本现已弃用。

我如何正确使用类似http://developer.android.com/reference/android/os/Build.VERSION.html 的东西说,“如果用户的 API 级别是 17,请使用这些函数的弃用版本,但如果API 级别为 18+,使用这些函数的较新版本”?我是否需要以某种方式使用弃用注释?

Mat*_*ini 8

如果操作系统版本低于 18,则应使用已弃用的方法;如果操作系统版本高于或等于 18,则应使用较新的方法。

例如:

@SuppressWarnings("deprecation")
private long getAvailableBlocks(StatFs statFs) {
    long availableBlocks;

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
        availableBlocks = statFs.getAvailableBlocksLong();
    } else {
        availableBlocks = statFs.getAvailableBlocks();
    }

    return availableBlocks;
}
Run Code Online (Sandbox Code Playgroud)