根据下面的答案进行编辑我将清单更改为:
<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="17" />
创建方法:
@TargetApi(17)
private static boolean isAirplaneModeOn17(Context context) {
return Settings.Global.getInt(context.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 0) == 1;
}
但是当我清理项目时,我仍然会收到“Settings.Global无法解析或不是字段”。想法?
我有一个应用程序,我使用以下代码读取飞行模式状态:
return Settings.System.getInt(context.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 0) == 1;
这适用于我的所有GB和&lt; = 4.1x使用。
当然,在API 17中设置了。全局,并且此位置已更改。
return boolean airmode = Settings.Global.getInt(context.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 0) != 1;
除了在API17中可能有解决方法来获得飞机模式状态之外,真正的问题是如何编译一个支持从同一项目中读取Settings.System和Settings.Global的项目?
当项目构建目标设置为4.2 API 17之外的任何东西时,我似乎无法使Eclipse“忽略”“Settings.Global无法解析或不是字段”。我知道代码将适用于我的4.2用户,并具有如下设置:
private static boolean isAirplaneModeOn(Context context) {
if (apiVersion < 17) {
return Settings.System.getInt(context.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 0) == 1;
} else {
return Settings.Global.getInt(context.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 0) == 1;
}
}
我在清单中弄乱了min和目标API,它似乎没有任何影响,Eclipse仍然无法编译我的项目。
FWIW,这里有一些相关的版本信息:
ADK 21.0.0.v201210310015-519525
Eclipse版本:4.2.1构建ID:M20120914-1800
TIA!
答案 0 :(得分:2)
右键单击您的项目,单击Properties,然后单击Android,检查Android 4.2,Eclipse将加载4.2所需的所有内容,并且所有内容都应该编译。