我的应用程序使用Environment.getExternalStorageDirectory()

时间:2016-06-09 21:48:15

标签: android android-6.0-marshmallow

我在商店中有一个现有的应用程序,并使用“Environment.getExternalStorageDirectory()”来访问存储。这段代码从2.3到Lollipop(在我的Galaxy S5,Verizon上)工作,允许用户读/写一个名为Environment.getExternalStorageDirectory()/ MyFooBar的目录。最近我的S5更新到6.0 Marshmallow,现在我的S5(以及客户)也收到了/ storage / emulated / 0 / MyFooBar无法创建的错误。

对于Environment.getExternalStorageState()的每个android API调用,并与Environment.MEDIA_MOUNTED进行比较,表明它已挂载,而Environment.isExternalStorageRemovable()为否。

所有这些调用都是一样的,现在w / S5和Marshmallow都被打破了。

任何帮助都将不胜感激。

谢谢,吉姆

1 个答案:

答案 0 :(得分:0)

从Android 6.0(API级别23)开始,用户在应用程序运行时向应用程序授予权限,而不是在安装应用程序时。

3x2x3是一个危险的权限,并且不会自动授予,因此您应该实施新的权限方案,以使其在Android Marshmallow上运行。

https://developer.android.com/training/permissions/requesting.html