【问题标题】:Call requires API level 24 (current min is 8): new android.location.GnssStatus.Callback调用需要 API 级别 24(当前最低为 8):新的 android.location.GnssStatus.Callback
【发布时间】:2016-12-20 03:23:51
【问题描述】:

registerGnssStatusCallback 是在 API 24 中引入的。现在 GpsStatus 已被弃用,但我们不能将新的 GpsStatus 用于 24 之前的 API。

现在呢?我们如何在旧项目中使用新的?

【问题讨论】:

    标签: android android-location android-gps


    【解决方案1】:

    我建议暂时使用旧电话。这仅在 API 24 中被弃用,甚至还没有正式发布。即使它一旦发布,在不久的将来也可能只会被极少数的设备使用(即大多数人在很长一段时间内仍然是旧版本的 Android)。此外,从最小版本 8 到最小版本 24 是一个很大的飞跃。

    话虽如此,可以进行特定于版本的推理。请参阅以下文档:
    https://developer.android.com/reference/android/os/Build.VERSION.html
    https://developer.android.com/reference/android/os/Build.VERSION_CODES.html

    这可能很明显,但需要注意的是,您不想编写如下代码:

    if (version == x) {
      ...
    }
    else if (version == y) {
        ....
    }
    else if (version == z) {
       ...
    }
    

    我只是指出这一点,因为我确实看到人们这样做。 (在这种情况下,如果可能的话,最好使用某种策略/模板模式和工厂)。

    【讨论】:

    • 你的意思是它没有发布?我的 sdk 中已经有了它,当我将项目的构建目标更改为 api 24 时,它会显示此错误,如果我使用旧的 GpsStatus,它会警告我弃用。为了向后兼容,应该有一些支持库版本。
    • 有可用的预览,但仅此而已 - 预览。 Android 7 尚未正式向公众发布。见en.wikipedia.org/wiki/Android_version_history。此外,旧版本的 仍然在库中得到支持;他们现在实际上并没有删除它,它只是被弃用了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-17
    • 2015-01-15
    • 1970-01-01
    • 2012-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多