我需要我的应用程序通过调用3.0(11级) API View.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION),来隐藏三星9250/Galaxy Nexus上的虚拟按键,但我仍然需要我的APK可以在Android v2.2/2.3/2.31的设备上运行。
也许我应该用
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
}但是我应该在清单文件中做什么,我应该使用哪个库来构建项目?
谢谢。
发布于 2012-05-30 15:21:32
谢谢你的帮助。
反射或包装器类似乎太复杂了。
我只是使用4.0 lib来构建、设置
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15"/>并使用
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可供我们使用?
谢谢。
发布于 2012-05-30 11:35:34
当然有几个选项可以支持不使用相同API的多个Android版本,一种方式是反射,另一种方式是使用包装器类。支持多个平台版本是一件很常见的事情,有一篇关于这两个here的相当全面的文章。
要适当地设置AndroidManifest.xml,您需要添加以下标记:
<uses-sdk
android:minSdkVersion="4"
android:targetSdkVersion="10"
android:maxSdkVersion="10" />其中,最低SDK是您的应用程序支持的最低级别,目标是您的应用程序在其上测试过的最高级别,您知道它是有效的。如果您确实不希望您的应用程序超过某个API级别(可能您使用的方法在较新版本中不受支持),则Maximum SDK是可选的。
编辑:就使用哪个库而言,选择能提供所需所有功能的最低版本。如果您需要仅在API级别11中可用的方法,则使用该方法。如果它最终高于您的“最低支持版本”,只需记住非常仔细地测试早期版本。
https://stackoverflow.com/questions/10809522
复制相似问题