2012-02-05 38 views
0

在我的一個遊戲中,我將嘗試通過撥打getExternalFilesDir訪問SD卡。處理SD存儲/兼容性

如您所知 - 此方法不適用於Android 2.1設備(級別7 api)。由於admob(它需要13級api),我無法切換回較舊的API。

所以我也不能使用舊的功能,如getExternalStorageDir - 因爲這根本就不是可在API級別13

有什麼建議?

+0

是你的問題 - 你想訪問Android 2.1及以上(API 7 ... API 13)上的SD卡嗎?你希望它使用單一來源?你不能這樣做,因爲getExternalFilesDir和gexternalStorageDir在所有API版本都可用? – 2012-02-05 13:20:18

回答

0

要使用SD卡使用Environment.getExternalStorageDirectory()以獲取sd卡的路徑。此方法適用於所有api級別,因爲它是自API級別1以來合併到Android中的。

您可以通過執行此操作來獲取應用程序文件的存儲目錄。

String externalFileDirectory = 
      Environment.getExternalStorageDirectory().toString(); 
externalFileDirectory += "/Android/data/your.application.package/.files/" 

注意,在externalFileDirectory文件將在您的應用程序將被卸載被自動刪除。

Admob help在Requirements部分中提到Admob需要Android 1.5(API 3)或更高版本。因此,您可以將<uses-sdk android:minSdkVersion="api_level" /> minsdkversion設置爲低於13,並且可以使用getExternalFilesDir。因此您可以使用getExternalFilesDir方法。

Fory Admob您只需將default.properties或project.properties中的目標設置爲13.在您的default.properties或project.properties文件中編寫target=android-13。你的應用程序仍然會支持你的應用程序的minSdkVersion。

+0

你很棒,也許谷歌應該將其發佈到他們關於數據存儲的幫助部分。 我設置了AdMob的事情做好,但我想用最新的SDK API,只需要API第7級後備使用SD卡 - 你指出我正確的方法,謝謝 是存在的,爲什麼你寫的任何原因「.files」前面有個小點? – 2012-02-05 14:13:31