[英]writing file on sdcard privately for application android
我正在以sdcard中的amr文件格式寫入音頻數據。
File file = new File(dir, "test.amr");
try {
FileOutputStream f = new FileOutputStream(file);
f.write(audioData);
f.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
它工作正常,但我的問題是它在其他應用程序中顯示,以及在Android OS的默認媒體播放器中顯示。
我的問題是如何在sdcard上寫一個文件,該文件只能由我的應用程序訪問,而不能由設備上的其他應用程序訪問。
謝謝。
所有人都可以訪問SD卡上的文件,您無法更改。 您應該使用內部存儲
您可以將文件直接保存在設備的內部存儲中。 默認情況下,保存到內部存儲器的文件是您的應用程序專用的,其他應用程序無法訪問它們(用戶也不能訪問它們)。
這是不可能的,所有應用都可以訪問SD卡上的所有文件。
要使文件保密,請在應用程序的本地目錄中創建它們。 應用程序專用文件夾的位置取決於:
String dir = getPackageManager().getPackageInfo("com.example.app", 0).applicationInfo.dataDir;
其他選擇:在SD卡上的文件夾中創建一個空的“ .nomedia”文件,然后其中的文件不會(不應)顯示在媒體播放器中。
我認為可以在API 9(android 2.3)或更高版本上使用。 從2.3開始,有一個名為StorageManager
的新類。 OBB文件系統可能滿足您的需求。 抱歉,我是Android上的老手,不能給您一個很好的例子,但是,您可以在此處查看官方文檔
在SD卡上創建一個文件夾,在其中存儲文件。
然后在該文件夾中創建一個名為.nomedia
的文件,以隱藏該文件夾中的文件,使其不會在其他應用程序中列出。
包含名為.nomedia
的文件的任何文件夾都不會被MediaServer掃描,因此不會在音樂播放器等中列出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.