如果我将minSdkVersion设置为8,但是想要为SdkVersion = 15指定一些方法,我该怎么做?

如果我将minSdkVersion设置为8,但是想要为SdkVersion = 15指定一些方法,我该怎么做?

问题描述:

我想开发一个Android应用程序,即使对于低版本的Android设备,我也不想在高版本中牺牲一些可用的功能。如果我将minSdkVersion设置为8,但是想要为SdkVersion = 15指定一些方法,我该怎么做?

在AndroidManifest.xml文件:

<uses-sdk 
android:minSdkVersion="8" 
android:targetSdkVersion="17" /> 

我得到当前设备的机器人级别:

deviceLevel = android.os.Build.VERSION.SDK_INT; 

然后if语句来指定不同的版本不同的代码,我会用。

if (deviceLevel >= 11) 
{ 
List<Camera.Size> videoSizes = parameters.getSupportedVideoSizes(); 
...... 
} 
else 
{ 
...... 
} 

但是,Eclipse表示存在错误。 getSupportedVideoSizes不适用于版本= 8;

我想我需要在这种情况下抑制错误。 如何做到这一点?

+0

'@SuppressLint(“NewApi”)'应该禁止新的API警告。虽然Eclipse *应该*提供在悬停错误代码时禁止它。 – 2013-05-07 00:32:42

+0

谢谢。有用! Eclipse的提示是在黑色背景下的深蓝色字体,我忽略了它。我需要修改格式。 – user1914692 2013-05-07 01:57:28

你想添加@SupressLint("NewApi")到你的活动课。然后你会想要使用android.os.Build.VERSION.SDK_INT;来获得版本int,它应该始终是API编号(即Jelly Bean 4.2是API 17,用于比较17)或者可以使用Build.VERSION_CODES.DESSERT_NAME_HERE,并将此值用于if-否则执行您的操作只能在更高级别的API中进行。

+0

它的工作原理!谢谢! – user1914692 2013-05-07 01:55:34

+0

@ user1914692非常欢迎! – TronicZomB 2013-05-07 01:57:03

+0

您知道如何更改Eclipse中悬停窗口的字体颜色吗?我忽略Eclipse的提示的原因是黑色背景中的深蓝色字体很容易被忽略。 – user1914692 2013-05-07 03:48:59

我认为如果将“minSdkVersion”更改为15,效果会更好。因为在以前的设备上运行时会很容易死掉。

+0

然后,应用程序将无法安装在比SDK 15更低的任何东西上。 – 2013-05-07 01:09:06

+0

我知道,我知道。虽然可能会安装,但体验不会很好。 – 2013-05-07 01:20:28

+0

没有理由将'minSdkVersion'设置为15.OP可以使用if-else来防止崩溃。这并不是很好的建议。如果OP想要添加仅适用于新版操作系统版本的新功能,但该应用程序在旧版本中仍然具有完整功能,那么没有理由仅仅因为他们不会获得新功能而删减整个用户群可以在if-else中处理。 – TronicZomB 2013-05-07 01:48:07