为什么推荐的 getExternalStorageState() 来替换已弃用的 getExternalStorageDirectory() 不能正常工作?
Why does the recommended `getExternalStorageState()` to replace deprecated `getExternalStorageDirectory()` not work correctly?
问题:当我使用推荐的getExternalStorageState()
替换已弃用的getExternalStorageDirectory()
时,推荐的替换returns路径错误。我在 FileInputStream
崩溃时发现了这个问题,以前不是这样。
以下内容已弃用但正确 returns:/storage/emulated/0/Download/alaina.jpg
return Environment.getExternalStorageDirectory().toString() + "/Download/" + fileName;
推荐如下returns:mounted/download/alaina.jpg
return Environment.getExternalStorageState() + "/Download/" + fileName;
我所做的: 我已经导入并使用了 tatocaster 的 class RealPathUtil
,发现 here 效果很好。但是,现在不推荐使用 Environment
和 MediaStore
中使用的一些方法。通过警告建议使用 getExternalStorageState()
。我通常会清理警告并使用建议,这是第一个引起问题的。
模拟器位置:
When I use the recommended getExternalStorageState() to replace the deprecated getExternalStorageDirectory(),
这没有意义,因为您无法将它们相互比较。
一个提供一个文件路径。另一个州。
无需使用 getExternalStorageState(),因为它总是 returns 状态已安装。
多年来一直有外部存储可用。
方法 getExternalStorageDirectory() 有效并且一周前未被弃用。
问题:当我使用推荐的getExternalStorageState()
替换已弃用的getExternalStorageDirectory()
时,推荐的替换returns路径错误。我在 FileInputStream
崩溃时发现了这个问题,以前不是这样。
以下内容已弃用但正确 returns:/storage/emulated/0/Download/alaina.jpg
return Environment.getExternalStorageDirectory().toString() + "/Download/" + fileName;
推荐如下returns:mounted/download/alaina.jpg
return Environment.getExternalStorageState() + "/Download/" + fileName;
我所做的: 我已经导入并使用了 tatocaster 的 class RealPathUtil
,发现 here 效果很好。但是,现在不推荐使用 Environment
和 MediaStore
中使用的一些方法。通过警告建议使用 getExternalStorageState()
。我通常会清理警告并使用建议,这是第一个引起问题的。
模拟器位置:
When I use the recommended getExternalStorageState() to replace the deprecated getExternalStorageDirectory(),
这没有意义,因为您无法将它们相互比较。
一个提供一个文件路径。另一个州。
无需使用 getExternalStorageState(),因为它总是 returns 状态已安装。
多年来一直有外部存储可用。
方法 getExternalStorageDirectory() 有效并且一周前未被弃用。