假设我有一个目标为 4.0 的项目,但支持低至 2.2 的版本。在 2.2 设备上运行以下命令时,我得到正确的值,即 14。
Integer version = Build.VERSION_CODES.ICE_CREAM_SANDWICH
对我来说,这似乎很奇怪,我期待一个空值或错误,因为设备正在使用 2.2 API 并根据 2.2 Build.VERSION_CODES类中,没有提及 int ICE_CREAM_SANDWHICH = 14
常量。我在这里缺少什么?
最佳答案
正如 Ahmad 所说,您需要使用 API Level 14 编译代码才能使用常量“ICE_CREAM_SANDWICH”。问题是在编译时这些常量会更改为各自的值。这意味着在运行时任何设备都不会看到“ICE_CREAM_SANDWICH”常量,而是看到值 14(即使它是安装了 Froyo 2.2 的设备)。
换句话说,在您的代码中:
Integer version = Build.VERSION_CODES.ICE_CREAM_SANDWICH;
在设备中:
Integer version = 14;
虽然不完全是这样,但你明白了。
关于android - Android 2.2如何知道4.0的版本号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12755684/