我有一个本地要保存的地址path,以及一个Bitmap数据,现在要把Bitmap保存成图片存放在path中,权限一直不被通过,提示如下信息:
W/System.err: java.io.FileNotFoundException: /storage/emulated/0/DCIM/Camera/IMG_20230225_071514.jpg (Permission denied)
请问该如何解决?
我有一个本地要保存的地址path,以及一个Bitmap数据,现在要把Bitmap保存成图片存放在path中,权限一直不被通过,提示如下信息:
W/System.err: java.io.FileNotFoundException: /storage/emulated/0/DCIM/Camera/IMG_20230225_071514.jpg (Permission denied)
请问该如何解决?
该回答引用ChatGPT
如果有疑问可以回复我
如果您的应用程序需要读写外部存储器,您需要在AndroidManifest.xml文件中请求相应的权限。
在AndroidManifest.xml文件中添加以下权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
另外,从Android 11开始,访问共享存储(shared storage)上的文件需要申请特殊权限。要在应用程序中访问共享存储,请在AndroidManifest.xml文件中添加以下权限:
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
您可以使用以下代码检查是否已授予这些权限:
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
// Permission is not granted
}
如果权限没有被授予,您可以使用以下代码请求这些权限:
ActivityCompat.requestPermissions(this, new String[] {Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE}, REQUEST_CODE);
在您的情况下,如果权限已经被授予,但仍然出现"Permission denied"错误,请确保您已经在运行时请求了这些权限。如果权限请求被拒绝,则应该向用户解释为什么应用程序需要这些权限,并尝试再次请求这些权限。