2011-03-15 112 views
1

我是Android開發新手。我正在嘗試使用以下代碼通過Gmail通過電子郵件發送摩托羅拉里程碑上的文件。訪問SD卡上的文件android

Intent sendIntent = new Intent(Intent.ACTION_SEND); 
    sendIntent.setType("audio/mp3"); 
    sendIntent.putExtra(Intent.EXTRA_STREAM, "file:///sdcard/king1.mp3"); 
    sendIntent.putExtra(Intent.EXTRA_SUBJECT, "Subject"); 
    sendIntent.putExtra(Intent.EXTRA_TEXT, "this is the email content2"); 
    sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///sdcard/king1.mp3")); 
    startActivity(Intent.createChooser(sendIntent, "Title:")); 

運行代碼發送電子郵件,但發送的附件爲0kb。我在互聯網上的其他地方看到過這個問題,但我不知道我是否正在聲明文件的正確路徑。我怎樣才能知道文件的確切路徑?如果我裝入它,我得到的路徑是/ Volumes/NO NAME/king1.mp3。

或者

我需要首先使用的FileInputStream讀取文件?

非常感謝!

回答

2

嘗試

Environment.getExternalStorageDirectory()

獲得SD卡的根目錄。

+0

哦,謝謝,得到它的工作:)事實證明,根本是/ sdcard – shiraz 2011-03-15 08:35:13

+0

但我想通過保持安裝在計算機上的SD卡不會讓手機訪問它。 – shiraz 2011-03-15 08:36:20

+1

根在不同的設備上可能會有所不同。 – sanna 2011-03-15 08:45:05

1

在我的設備上,外部sd數據位於另一個名爲'external_sd'的目錄中。 Environment.getExternalStorageDirectory()給出sd卡的根目錄,但是如果您從計算機上將數據放置在設備上,它可能位於「file://」+ Environment.getExternalStorageDirectory()+「/ external_sd /」

這只是通過在設備上使用「我的文件」應用程序才顯而易見,當通過USB安裝到計算機上時,external_sd目錄級別不明顯。