Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在AdobeAIR中检测Android操作系统版本?_Android_Actionscript 3_Air - Fatal编程技术网

如何在AdobeAIR中检测Android操作系统版本?

如何在AdobeAIR中检测Android操作系统版本?,android,actionscript-3,air,Android,Actionscript 3,Air,在iOS上,AdobeAIR的Capabilities.os可能类似于“iPhone os 5.1.1 iPad3,1”——非常清楚地标识操作系统版本和设备型号。在Android上,它看起来更像“Linux2.6.35.7-59465-g42bad32”。列出以下适用于android版本的Linux内核: 2.6.29:1.6,2.0,2.1 2.6.32:2.2x 2.6.35:2.3倍 2.6.36:3.x 3.0.1:4.0x 这些都是一成不变的,还是有些系统会报告不同的Linux版本

在iOS上,AdobeAIR的Capabilities.os可能类似于
“iPhone os 5.1.1 iPad3,1
”——非常清楚地标识操作系统版本和设备型号。在Android上,它看起来更像“Linux2.6.35.7-59465-g42bad32”。列出以下适用于android版本的Linux内核:

  • 2.6.29:1.6,2.0,2.1
  • 2.6.32:2.2x
  • 2.6.35:2.3倍
  • 2.6.36:3.x
  • 3.0.1:4.0x
这些都是一成不变的,还是有些系统会报告不同的Linux版本

有没有更好的方法使用AIR和ActionScript来确定Android操作系统的版本


出于我的目的,我需要区分4.0(冰淇淋三明治)和4.1(果冻豆)。我认为4.1使用的是Linux内核3.1.10——有人能确认吗?

我可以确认,通过内核检测Android版本并不那么可靠。我试图将4.0与以前的版本区分开来,虽然大多数ICS设备都有3.x Linux内核,但一些升级的平板电脑,如Acer Iconia A500(最初与Android 3.0蜂巢一起提供)在升级到Android 4.0 ICS后仍然有2.x Linux内核。所以我猜升级到Jelly Bean的设备也会发生同样的情况


我想获得Android版本的一个可靠方法是创建一个本机扩展,它调用本机Android API来获取该信息(请参见:)。

我有另一个解决方案。我发现了这个AS3类,它通过获取一个名为“/system/build.prop”的Android系统文件来确定Android的版本

您还可以获得其他信息,如型号、品牌、SDK版本和CPU

看一看:

有关iOS的信息,另请参见本节:


我怀疑这些是否绝对是一成不变的,但我敢说,大多数用户从收到它的时候起就没有改变它,我的猜测是,即使运营商修改操作系统,他们也不会弄乱内核(不过只是有根据的猜测)。另一种直觉是,他们可能会切换操作系统或内核,以使其与他们选择的硬件兼容。出于好奇,你为什么要尝试确定它是否为4.0/4.1,这不是你想要访问的功能的公开属性吗?奥多比说“如果存在更具体的功能属性,请不要使用Capabilities.os根据操作系统确定功能。基于操作系统的能力是一个坏主意,因为如果应用程序不考虑所有潜在的目标操作系统,它可能会导致问题。相反,请使用与要测试的功能对应的属性。有关更多信息,请参阅功能类描述。“AIR3.3中有一个bug,它使文本仅在4.1中消失。解决方法很难看,所以我只想在必要时使用它。我同意通过操作系统确定功能是个坏主意,但如果AIR在不同的操作系统中表现不同,我需要能够确定哪个在运行。rafaelfaria最近在starling论坛的主题上发布了一个类,这正是我想要的。它为Android使用了时髦的Monkey build.prop解决方案,并拥有最新的iOS设备。谢谢