【问题标题】:Android Airplane Mode - Different API versionsAndroid 飞行模式 - 不同的 API 版本
【发布时间】:2013-08-09 19:59:32
【问题描述】:

谁能告诉我如何处理这种情况。我知道使用 API 17,飞行模式的测试已从 Setting.System 移至 Settings.Global。知道许多用户会在手机上使用较旧的 api,但想要正确处理弃用,我编写了以下方法:

@SuppressWarnings("deprecation")
public static boolean isAirplaneModeOn(Context context) {

    try {
        return Settings.Global.getInt(context.getContentResolver(),
          Settings.Global.AIRPLANE_MODE_ON, 0) != 0;
    } catch (Exception e) {
        return Settings.System.getInt(context.getContentResolver(),
           Settings.System.AIRPLANE_MODE_ON, 0) != 0;
    }   
}

问题在于,在我的清单中,我已将 minSDK 值设置为 9,这正是我想要的。冲突是然后我得到这个错误:

Call requires API level 17 (current min is 9)

处理这种情况的正确方法是什么?谢谢!

【问题讨论】:

    标签: android api version


    【解决方案1】:

    检查用户的版本

    if(Build.VERSION.SDK_INT <= Build.VERSION_CODES.JELLYBEAN){
    
    }else{
    
    }
    

    然后只是抑制 lint 错误

    【讨论】:

    • 谢谢。这是处理 API 代码弃用的常用方法吗?我从来都不喜欢压制错误消息,因为这似乎是一种蛮力方法。
    • 这就是你所做的,确保你处理它只是一个错误,除非你抑制它,否则项目不会构建
    • 谢谢!感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多