从外部SD卡内存访问文件

时间:2014-09-25 15:54:26

标签: android

我是Android生态系统的新手。我可以得出一个明确的结论:任何应用程序都可以读取外部SD存储器中存储的任何文件吗?

注意虽然MediaStore内容提供程序无法访问getExternalFilesDir()和getExternalFilesDirs()提供的目录,但具有READ_EXTERNAL_STORAGE权限的其他应用程序可以访问外部存储上的所有文件,包括这些文件。如果您需要完全限制文件的访问权限,则应将文件写入内部存储。 (http://developer.android.com/guide/topics/data/data-storage.html#filesExternal

1 个答案:

答案 0 :(得分:1)

是的,您可以,但是如果您要在KitKat OS及更高版本上部署应用程序,则需要了解一条重要信息。您不能再像以前那样在SD卡/内部存储器中的任何位置写入。公共目录仍然可以写入(下载,图片,视频等),但就是这样。您可以为您的应用写入私人存储,您的应用只能从中读取,但如果您正在浏览sdCard的内容,则无法查看该位置或文件。唯一的例外是你的手机是否已植根。

http://www.androidcentral.com/kitkat-sdcard-changes

写入应用专用存储的示例:

//Write to internal app storage
            FileOutputStream internalStorage = null;

        try
        {
            internalStorage = openFileOutput("capturedImage", Context.MODE_PRIVATE);

        } 
        catch (FileNotFoundException e1)
        {
            e1.printStackTrace();
        }

        BufferedOutputStream buffer_output = new BufferedOutputStream(internalStorage);
        bitmap.compress(Bitmap.CompressFormat.JPEG, 100, buffer_output);
        try
        {
            buffer_output.flush();
            buffer_output.close();
        }
        catch (IOException e)
        {

            e.printStackTrace();
        }