[英]Application no longer works in lower android versions after setting android:targetSdkVersion
[英]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.