注意:这个问题是针对 Android M 开发者预览版而不是官方 Android 6.0 提出的。
android.os.Build.VERSION.SDK_INT 在 Android M 上返回 22(22 是 LOLLIPOP_MR1 的 api 级别)。我们应该如何检查应用程序是否在 Android M 上运行?我有这样的想法,但这显然行不通:
public boolean isAndroidMOrHigher() {
return android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.MNC;
}
为什么我需要这个?例如,检查我是否需要请求权限,因为 Android M 有一个新的权限模型。
我可以这样做:
public boolean isAndroidMOrHigher() {
return "M".equalsIgnoreCase(Build.VERSION.RELEASE);
}
但这似乎是一个 hack IMO。
真的有两个问题:
- 最干净的方法是什么?
- 这是一个错误还是应该是这样的?