Android获取外部存储绝对路径

时间:2013-07-09 11:10:18

标签: android storage

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

我想获得phoe或tab的内部存储空间'Absolute Path的绝对路径。

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

3 个答案:

答案 0 :(得分:29)

  

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

/storage/sdcard0/不是内部存储空间。这是外部存储。

(顺便说一下,由于没有名为“Galaxy Nexus 3”的设备,我假设您只是想要“Galaxy Nexus”)

要在您的应用的内部存储空间中查找位置,请使用getFilesDir()上的Context调用Activity(例如您的File)来获取{{} 1}}对象。

要获取应用程序唯一的外部存储空间位置,请使用getExternalFilesDir(),在所有Context上调用(例如您的ActivityFile对象。

要在外部存储上获取常见类型的文件(例如电影)的标准位置,请使用getExternalStoragePublicDirectory()上的Environment。< / p>

要获取外部存储的 root ,请在getExternalStorageDirectory()上使用Environment。然而,现在这被认为是草率编程,因为它鼓励开发人员将文件放在随机位置。

答案 1 :(得分:10)

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

还需要添加权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

答案 2 :(得分:1)

找到的解决方案是 1编辑模拟器:

  1. 转到Android虚拟设备管理器,然后编辑模拟器
  2. 为尊重的模拟器设置为100 d的SD卡,说好了
  3. 保存并关闭模拟器并启动
  4. 它对我有用,应用程序不再出错并且工作正常。