2016-09-18 54 views
0

我正在開發基於Firemonkey的基本MP3播放器Android應用程序(Delphi XE6),其中MP3文件將在安裝後添加到SD卡(外部)。因此,我需要我的應用程序能夠搜索這些特定的MP3文件,一旦用戶在其設備上激活/打開應用程序。如何使用Firemonkey在Android設備上查找特定文件?

文件搜索的代碼很好,但我的問題是將文件保存在SD卡上以及如何在代碼中查找文件夾/目錄位置。

這個概念應該非常簡單,但是Firemonkey(看起來)會讓它變得比預想的要難得多。

這裏是我的文件搜索代碼:

var 
sr : TSearchRec; 
i : Integer; 
Storage : String; 
begin 
    //List files found on SD Card on device only, for now 
    Storage := TPath.Combine(TPath.GetMusicPath, '*.mp3'); 
    if FindFirst(Storage, faAnyfile, sr) = 0 then 
    begin 
     repeat 
     listSessions.Items.Add(sr.Name); 
     until FindNext(sr) <> 0; 
    end; 
    FindClose(sr); 
end; 

所有我想要知道的是,對於所有的愛是善良純潔的,我在哪裏可以點搜索?上述位置不提供任何歡樂,也不是通用的GetMusicPath結果。我無法真正對目錄路徑進行硬編碼,因爲那樣只會在一個android設備上工作。我需要這個一般工作在所有的Android設備上。

TPath.GetDocumentsPath,TPAth.GetMusicPath和其他所有喜歡它的人可以得到我所有的上帝被遺棄的地點,我甚至無法在File Explorer中找到它。例如,我的「通用」音樂位置(這是我想使用的位置)返回此路徑:/storage/emulated/0/Android/data/com.embarcadero./files/Music。

我做錯了什麼?

回答

0

什麼幫助文件的建議是 - 就是用這樣的:

shStorage:= TPath.Combine(TPath.GetSharedMusicPath, '* .MP3');

然而,簡單地把它在模擬路徑中的較高水平......

即/存儲/模擬/ 0 /音樂

獲取ESExplorer,並期待在內部存儲 - 音樂文件夾將包含使用上述文件...

其他明智的,它出現在: /storage/emulated/o/Android/data/com.Your_Domain_ID.YOURPROGID/files/Music

希望幫助找人對於這個信息。

相關問題