检查Android版本[重复]
Posted
技术标签:
【中文标题】检查Android版本[重复]【英文标题】:Checking Android version [duplicate] 【发布时间】:2012-08-26 02:20:53 【问题描述】:可能重复:Retrieving android API version programmatically
如果运行应用程序 api 级别的手机是 14,即 android 4.0 或更高版本(例如 api levcel 15),那么我需要 startActivity ...否则如果 api 级别低于 14(例如 13),那么 startActivity .. .
String AndroidVersion = android.os.Build.VERSION.RELEASE;
if ( AndroidVersion == 4.0 )
Intent start = new Intent(S.this, Menu.class);
startActivity(start);
else
Intent startt = new Intent(S.this, Menu2.class);
startActivity(startt);
怎么了?
【问题讨论】:
possible duplicate 在您的问题中,您声明“(...)这是 android 4.0 或更高版本(...)”,但您使用的是 ==。仅当版本正好是 4.0 时才适用,但如果是 4.0.3、4.1 或其他版本则不适用。 【参考方案1】:使用SDK_INT
而不是RELEASE
。所以你的代码看起来像:
Intent intent;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH)
intent = new Intent(S.this, Menu.class);
else
intent = new Intent(S.this, Menu2.class);
try
startActivity( intent );
catch( Exception e )
e.printStackTrace();
所有 SDK 代码均为listed here。请注意始终从 startActivity() 捕获可能的异常;它不会有什么坏处(即使在您的应用程序中 - 您在开发时总是会忘记向 Manifest 添加活动),这是一个好习惯,可以防止您的应用程序崩溃,同时在日志中提供有用的信息
【讨论】:
我想要 api 级别是否为 14+ 所以如果它是 14 或 15 或 16 则启动 Menu 否则如果它小于 14 (例如 13,12,11, .... )启动 Menu2 ..这行得通吗? 是的,请参阅条件:">=" 这意味着Menu.class
用于所有 ICS 和更新版本,而 Menu2.class
用于任何其他情况(在这种情况下意味着更低比 ICS)
顺便说一句,我正在使用 int AndroidVersion = android.os.Build.VERSION.SDK_INT; if (AndroidVersion >= 14) .. 对吗?
哦,好的,谢谢.. 接受
技术上是的,但无论如何我都会将14
替换为Build.VERSION_CODES.ICE_CREAM_SANDWICH
,因为这会使您的代码更具可读性(您不必怀疑“API 14 到底是什么”)。它仍然是 14,因为这是在 SDK 中定义的常量(您可以将鼠标悬停在 Eclipse 中以查看确切的值),但是您查看并立即看到“好的,这是 ICS 及以上”。即使在最严重的宿醉中也很明显:)【参考方案2】:
比较整数版本更简洁,使用 >= 以实现未来兼容性
if (android.os.Build.SDK_INT >= android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH)
【讨论】:
【参考方案3】:这样就可以了!
if ( Build.VERSION.SDK_INT == 4 )
Intent start = new Intent(S.this, Menu.class);
startActivity(start);
else
Intent startt = new Intent(S.this, Menu2.class);
startActivity(startt);
【讨论】:
这将检查您是否在 android 1.6 上运行。由于使用了错误的 int 而不是 ICS。而是使用 Build.VERSION_CODES 中的固定常量。这增加了可读性并避免了此类错误。以上是关于检查Android版本[重复]的主要内容,如果未能解决你的问题,请参考以下文章
我如何检查运行我的应用程序的 Android 设备是不是在 4.2.2 及更低版本上运行 [重复]
如何检查我是否在Android 4.4及以上版本中以编程方式打开gps? [重复]