首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我想使用SDK v3.x提供的API,但使APK可以在装有Android v2.2/2.3/2.3.1的设备上运行

我想使用SDK v3.x提供的API,但使APK可以在装有Android v2.2/2.3/2.3.1的设备上运行
EN

Stack Overflow用户
提问于 2012-05-30 11:09:59
回答 2查看 647关注 0票数 1

我需要我的应用程序通过调用3.0(11级) API View.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION),来隐藏三星9250/Galaxy Nexus上的虚拟按键,但我仍然需要我的APK可以在Android v2.2/2.3/2.31的设备上运行。

也许我应该用

代码语言:javascript
复制
int SDK_INT = android.os.Build.VERSION.SDK_INT;
if(SDK_INT >= 11) {
        getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
}else{
        //do nothing
}

但是我应该在清单文件中做什么,我应该使用哪个库来构建项目?

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2012-05-30 15:21:32

谢谢你的帮助。

反射或包装器类似乎太复杂了。

我只是使用4.0 lib来构建、设置

代码语言:javascript
复制
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15"/>

并使用

代码语言:javascript
复制
if(Build.VERSION.SDK_INT >= HIDENAVIGATION_MIN_SDK)  
   getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);

在4.x和2.2/2.3平台上似乎都可以。

但是我在三星Nexus(9250)上遇到了这个问题,即使调用getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE),我也可以得到1196*720,但实际上我需要1280*720。

Get the real screen resolution on Ice Cream Sandwich

是否有其他API可供我们使用?

谢谢。

票数 2
EN

Stack Overflow用户

发布于 2012-05-30 11:35:34

当然有几个选项可以支持不使用相同API的多个Android版本,一种方式是反射,另一种方式是使用包装器类。支持多个平台版本是一件很常见的事情,有一篇关于这两个here的相当全面的文章。

要适当地设置AndroidManifest.xml,您需要添加以下标记:

代码语言:javascript
复制
<uses-sdk
    android:minSdkVersion="4"
    android:targetSdkVersion="10"
    android:maxSdkVersion="10" />

其中,最低SDK是您的应用程序支持的最低级别,目标是您的应用程序在其上测试过的最高级别,您知道它是有效的。如果您确实不希望您的应用程序超过某个API级别(可能您使用的方法在较新版本中不受支持),则Maximum SDK是可选的。

编辑:就使用哪个库而言,选择能提供所需所有功能的最低版本。如果您需要仅在API级别11中可用的方法,则使用该方法。如果它最终高于您的“最低支持版本”,只需记住非常仔细地测试早期版本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10809522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档