簡體   English   中英

在sdcard上私下為應用程序android寫入文件

[英]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.

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