2014-09-25 80 views
0

我对Android生态系统非常陌生。我可以做出明确结论:任何应用程序都可以读取外部SD存储器中的任何存储文件吗?从外部SD卡存储器访问文件

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

+1

外部SD将被格式化FAT16/FAT32,其具有用于权限绝对没有能力。例如是的,任何人都可以在外部卡上读取/写入任何他们想要的东西。 – 2014-09-25 15:57:03

回答

1

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

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

写入的实施例与APP私有存储:

//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(); 
     } 
+0

我对此有点困惑:“你不能像以前那样在SD卡/内部存储的任何位置写入数据。”有了SD卡,你是否意味着一张外置SD卡? – user523234 2014-09-26 16:37:46

+0

因此,使用KitKat OS及以上版本,任何应用程序都可以读取外部SD卡上的任何文件? – user523234 2014-09-26 16:38:25

+0

摘自: “保存应用程序专用的文件 如果您正在处理的文件不适合其他应用程序使用(例如图形纹理或仅由您的应用程序使用的声音效果),则应使用专用存储目录通过调用getExternalFilesDir()。“ 这似乎与我的其他摘录相矛盾。 – user523234 2014-09-26 16:42:17

相关问题