繁体   English   中英

Android:文件outputstream方法适用于Android 5及更低版本,但不适用于6及更高版本

[英]Android: file outputstream method works for android versions 5 and lower but not for 6 and higher

我有一个活动,它将创建一个新的Java对象,并在该对象内执行方法。 其中一种方法使用文件输出流,该文件输出流具有在活动中定义的文件和目录,并且该方法包括将一些数据写入此文件,然后将其关闭。 我已经在版本4和5的设备上对此进行了测试,并且可以正常工作,但是当我转到android 6/7设备时,fileoutputstream抛出FileNotFoundException,声称没有此类文件或目录,并且应用程序崩溃,但是我我很困惑,因为它确实存在(文件名/目录在不同版本之间不会更改),就好像它不存在一样,Android的早期版本也会抛出此错误。

我了解从android 5到android 6的用户权限处理方式有所变化,但我不知道如何或是否使用它来解决问题。 我的清单文件中已经有写入外部存储的权限,文件目录包含Environment.getExternalStorageDirectory()方法,当前目标sdk为23(Android版本6)。

请告知可能引起问题的原因以及解决该问题所需采取的措施。

我设法通过检查设备的sdk版本是什么,以及它是否为版本23(android 6)或更高版本来解决此问题,然后检查是否为适当的权限提供了自我许可,如果不是,则我调用ActivityCompat.requestPermissions即可解决此问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM