Android从设置读取.从API全局<17



根据下面的答案编辑,我将清单更改为:

<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和<=4.1x用途。

当然,在API 17设置。Global被引入,这个位置已经改变。

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和target API,它似乎没有任何影响,Eclipse仍然不会编译我的项目。

FWIW,这里有一些相关的版本信息:

ADK 21.0.0.v201210310015-519525

Eclipse版本:4.2.1内部版本id:M20120914-1800

TIA!

右键单击您的项目,单击Properties,然后单击Android,选中Android 4.2,Eclipse将加载4.2所需的所有内容,所有内容都应该编译。

相关内容

最新更新