2011-12-14 74 views
4

我知道移至SD卡功能,可從Android 2.2的 我想知道有沒有辦法在我的程序來檢測,如果設備支持移動到SD卡功能,如果它的支持可以否則,如果移動不支持比什麼都不會發生(會在手機內存)移動到SD卡

我的主要問題是我的應用程序支持以上所有設備從1.6到了,我不能使用

安卓的installLocation =「汽車「

因爲... e它在2.2以下版本中不被認可。那麼我必須做檢查和啓用編程,如果是的話如何?我希望你能理解我的問題。

謝謝。

回答

6

爲了允許對外部存儲裝置,並保持與版本比API級別8兼容的下:

  1. 附上android:installLocation屬性與所述<manifest>元件的「auto」或「preferExternal」值。

  2. 讓你的android:minSdkVersion屬性保持原樣(小於「8」),並確保你的應用程序代碼只使用與該級別兼容的API。

  3. 爲了編譯您的應用程序,請將您的構建目標更改爲API級別8.這是必要的,因爲較早的Android庫不理解android:installLocation屬性,並且在應用程序出現時不會編譯它。

當應用程序被安裝在設備上用API級別低於8,該android:installLocation屬性被忽略並且該應用程序被安裝在內部存儲設備。

這是Android的Backward Compatibility說。

另請參閱Applications That Should NOT Install on External StorageApplications That Should Install on External Storage

+0

謝謝。這工作。我必須通過編輯項目屬性(右鍵單擊Eclipse中的項目)來更改構建目標,並選擇至少具有API級別8的目標 – 2011-12-14 08:04:39

0

那麼你可以使用此標誌。只要嘗試針對api 8級以上的版本進行編譯。

確保android:minSdkVersion正確設置爲4

老平臺將忽略android:installLocation和新平臺將兌現這一點。

僅用於識別新標誌的編譯。

移至SD卡可以從2.2及以上,所以你不必明確地進行檢查。

0

這是一個OS特定功能不特定於設備的。 您應該在檢查操作系統版本。 如果SD卡在設備中不可用,它將不會自動顯示移動選項。

2

雖然編程功能可以從2.2或更高版本獲得,但實際轉移到sd功能並不是每個手機都可以使用,即使存在內部甚至外部SD卡!

現在,在ICS和JB中,操作系統可以決定自行將應用程序移動到SD上,而用戶無權手動將應用程序移入/移出SD卡!

此行爲已在Galaxy Nexus,Galaxy S3,Galaxy Tab 2,Transformer和Iconia A500上與ICS和JB一起測試過!他們沒有一個有移動的標準按鈕!

因此,瞭解用戶是否可以在運行時將應用程序移動到SD仍然很有趣。