我想下载一些文件并将其保存到手机/标签的内部存储空间中。试用三星Galaxy Note 2和Galaxt Tab 10.1。当我对它们使用/storage/sdcard0/
时,代码会成功运行,但是当我使用Galaxy Nexus 3
代码时代码会失败。
我想获得phoe或tab的内部存储空间'Absolute Path
的绝对路径。
是否有可能,如果是这样的话?
答案 0 :(得分:29)
当我在它们上使用/ storage / sdcard0 /时,代码运行成功,但是当我使用Galaxy Nexus 3时代码失败。
/storage/sdcard0/
不是内部存储空间。这是外部存储。
(顺便说一下,由于没有名为“Galaxy Nexus 3”的设备,我假设您只是想要“Galaxy Nexus”)
要在您的应用的内部存储空间中查找位置,请使用getFilesDir()
上的Context
调用Activity
(例如您的File
)来获取{{} 1}}对象。
要获取应用程序唯一的外部存储空间位置,请使用getExternalFilesDir()
,在所有Context
上调用(例如您的Activity
) File
对象。
要在外部存储上获取常见类型的文件(例如电影)的标准位置,请使用getExternalStoragePublicDirectory()
上的Environment
。< / p>
要获取外部存储的 root ,请在getExternalStorageDirectory()
上使用Environment
。然而,现在这被认为是草率编程,因为它鼓励开发人员将文件放在随机位置。
答案 1 :(得分:10)
为什么不能使用Environment.getExternalStorageDirectory()
从代码中获取/storage/sdcard0/
路径?
还需要添加权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
答案 2 :(得分:1)
找到的解决方案是 1编辑模拟器:
它对我有用,应用程序不再出错并且工作正常。