繁体   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