2013-03-12 72 views
4

我想僅在平板電腦上運行我的應用程序。因此,我已宣佈以下清單文件代碼:僅適用於平板電腦的顯示限制,但應用程序仍可用於Samsung Galaxy S2

<supports-screens 
    android:smallScreens="false" 
    android:normalScreens="false" 
    android:largeScreens="true" 
    android:xlargeScreens="true" 
    android:anyDensity="false" 
    android:requiresSmallestWidthDp="600"/> 

但是,當我連接我的三星Galaxy S2手機(hdpi 480x800),它仍然顯示在Eclipse的Android設備選擇器。

我只想支持7「和10」平板電腦。我怎樣才能做到這一點?

+4

AFAIK,Eclipse不過濾屏幕大小。 Play商店對於經典的屏幕尺寸存儲桶(例如'xlarge')的確如此。 – CommonsWare 2013-03-12 12:47:01

回答

3

你可能想看看here

你寫清單的限制是不完全正確的用於此目的:

使用此:

<supports-screens android:smallScreens="false" 
        android:normalScreens="false" 
        android:largeScreens="false" 
        android:xlargeScreens="true" 
        android:requiresSmallestWidthDp="600" /> 

它描述了兩種不同的方式應用的屏幕尺寸支持:

它聲明該應用不支持傳統上不是平板電腦的「小」,「普通」和「大」的屏幕尺寸存儲桶

它聲明應用程序需要至少600dp寬的最小可用區域的屏幕尺寸

第一種技術適用於運行Android 3.1或更早版本的設備,因爲這些設備基於廣義屏幕尺寸聲明其尺寸桶。 requiresSmallestWidthDp屬性適用於運行Android 3.2及更新版本的設備,它增加了應用程序根據最小數量的密度無關像素指定其尺寸要求的功能。在此示例中,該應用程序聲明最小寬度要求爲600dp,這通常意味着7英寸或更大的屏幕。

當然,根據您的設計在不同屏幕尺寸下的工作情況,您的尺寸選擇可能會有所不同;例如,如果您的設計只在9英寸或更大的屏幕上運行良好,則可能需要720dp的最小寬度。

問題在於,您必須針對Android 3.2或更高版本編譯應用程序才能使用requiresSmallestWidthDp屬性。舊版本不理解此屬性,並會引發編譯時錯誤。最安全的做法是針對與您爲minSdkVersion設置的API級別相匹配的平臺開發您的應用。當您爲構建候選版本做最後準備時,將構建目標更改爲Android 3.2並添加requiresSmallestWidthDp屬性。比3.2更舊的Android版本會忽略該XML屬性,因此不存在運行時故障的風險。

0

您無法過濾安裝在手機上的應用程序(通過Eclipse,或者如果它是從外部源下載的)。此設置將限制從Google Play市場下載手機上的應用。

相關問題