簡體   English   中英

Android-查找所有內部和外部存儲

[英]Android - Find all internal and external storage

因此,我注意到從設備到設備,內部和外部都有許多不同的配置。 在我的Evo上,只有內部存儲器和外部SD卡,但是在同一年的Droid Incredible上,有內部存儲器,內部SD卡(約8GB)和外部SD卡(默認為1GB)。 大概還有其他配置,並且還會有更多配置。

但是,關於枚舉可用存儲介質的數量,我似乎只能找到類似於Environment之類的東西,您可以在其中執行getExternalStorageDirectory()之類的操作,該方法返回一個File,而不是File []或類似的東西。 有沒有一種更安全,通用的方法來枚舉所有可用的存儲介質? 您是否只需要導航到/ mnt /並在那里獲得清單以查看所有已安裝的卷?

有沒有一種更安全,通用的方法來枚舉所有可用的存儲介質?

從SDK的角度來看,存在內部存儲( getFilesDir() )和外部存儲( Environment.getExternalStorageDirectory() )。 在Android 1.x / 2.x上,這些將是單獨的分區; 在Android 3.0+上,它們將是一個分區。

根據定義,做任何超出SDK提供的范圍的事情都是不安全的。 無法保證分區名稱,它們的作用,是否可以讀取它們,是否可以寫入它們等等。即使您要建立一個數據庫,包括所有可能性(型號,操作系統版本,分區和它們的狀態), 相對於新設備和OS版本,該數據庫將永遠過時。

可能可以通過MediaStore來訪問其他分區上的媒體文件。 例如,某些設備制造商除了提供板載外部存儲設備外還提供SD卡,還會為SD卡的文件編制索引,因此SD卡中包含的所有媒體文件都會顯示在MediaStore中。 這可能使您可以使用其他制造商提供的分區(例如SD卡)上的內容,但是AFAIK MediaStore無法為您提供在此類分區上放置新文件的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM