如果我理解正確的,你在呼喚什麼「外部」 USB路徑實際上是掛載點計算機上的SD卡。很可能,您的SD卡的標籤爲userdata1
。因此,當它安裝在計算機上時,它將獲得/mnt/userdata1
安裝點。然而,這不是嚴格必要的,它可以是任何掛載點。事實上,如果你將它連接到另一臺計算機上,它很容易成爲另一個安裝點。
因爲此路徑是由計算機操作系統決定,你需要在計算機上找到這條路徑(注意,這可能是不同的,每次將手機連接到電腦上,所以你需要做的它每次)。
從你的問題和路徑結構(/mnt/userdata1
)我猜你正在使用Linux或其他UNIX版本。因此,您可以在PC上運行mount
以查看已安裝設備的列表。例如,這裏是我的Mac上的輸出:
$ mount
/dev/disk0s2 on/(hfs, local, journaled)
devfs on /dev (devfs, local, nobrowse)
map -hosts on /net (autofs, nosuid, automounted, nobrowse)
map auto_home on /home (autofs, automounted, nobrowse)
/dev/disk1s1 on /Volumes/ALEKS540 (msdos, local, nodev, nosuid, noowners)
注意,在輸出的最後一行 - 這是安裝在我的電腦連接的Android手機的SD卡。在mac上,掛載點是在/Volumes
而不是/mnt
下創建的。除此之外,ALEKS540是我的SD卡的標籤,因此它以這種方式安裝。
內部在手機上,它仍然安裝爲/mnt/sdcard
。
但從了Android的點,可能有三個存儲類型:
- 內存它總是裝
/
下,在設備上,包含了除SD卡及以下USB存儲一切。
- SD卡 - 這被稱爲「外部存儲」,通常安裝爲
/mnt/sd
,但並非總是如此。 Environment.getExternalStorageDirectory()
將返回SD卡安裝點的路徑。
- USB存儲 - 這是僅支持很少的設備(那些支持USB主機模式的外部存儲)。這將被安裝在
/mnt
下的某個地方,但確切位置會有所不同。您將需要使用Android NDK來詢問和重複安裝的設備,以便找到您之後的設備。
那麼究竟是什麼問題呢? – Janusz
我知道th內部SD卡路徑。但是如何找到外部USB設備路徑。我不知道。 –
使用外部存儲器時需要記住的一件事:您必須包含權限。寫入外部存儲需要'<使用權限android:name =「android.permission.WRITE_EXTERNAL_STORAGE」/>' –