Android获取外部存储绝对路径

Erd*_*mir 10 storage android

我想下载一些文件并将其保存到手机/标签的内部存储中.试用三星Galaxy Note 2和Galaxt Tab 10.1.当我使用/storage/sdcard0/它们时代码运行成功,但是当我使用Galaxy Nexus 3代码失败时.

我想获得phoe或tab的内部存储的绝对路径Absolute Path.

是否有可能,如果是这样的话?

Com*_*are 30

当我在它们上使用/ storage/sdcard0 /时,代码运行成功,但是当我使用Galaxy Nexus 3时代码失败.

/storage/sdcard0/不是内部存储.这是外部存储.

(顺便说一句,既然没有名为"Galaxy Nexus 3"的设备,我假设你只是意味着"Galaxy Nexus")

要在应用程序的内部存储上查找位置,请使用getFilesDir(),调用任何Context(例如您的Activity)来获取File对象.

要获取应用程序唯一的外部存储位置,请使用getExternalFilesDir(),调用任何Context(例如您的Activity)来获取File对象.

为了得到一个标准上的位置外部的常见类型的文件(例如,电影)的存储,使用getExternalStoragePublicDirectory()Environment.

为了得到外部存储,使用getExternalStorageDirectory()Environment.然而,现在这被认为是草率编程,因为它鼓励开发人员将文件放在随机位置.

  • @CommonsWare:为什么我要用锤子打破我的设备...我知道外部存储的定义,...无论如何,谢谢你的锤子支持 (3认同)
  • @ErdinçÖzdemir:在`Environment`上使用`getExternalStorageDirectory()`.然而,现在这被认为是草率编程,因为它鼓励开发人员将文件放在随机位置.此外,表示外部存储的*specific*路径因制造商和操作系统版本而异.这就是为什么你使用方法而不是硬编码字符串来查找外部存储上的位置. (2认同)

小智 10

为什么你不能Environment.getExternalStorageDirectory()用来/storage/sdcard0/从代码中获取路径?

还需要添加权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)