2013-05-07 58 views
0

我想開發一個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

回答

4

你想添加@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

0

我認爲如果將「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

相關問題