【问题标题】:Permission denied while save a file in Android在Android中保存文件时权限被拒绝
【发布时间】:2017-03-15 20:29:12
【问题描述】:

我正在开发一个 Android 应用程序。在我的应用程序中,我将位图保存为文件。但是即使我在清单文件中设置了正确的权限,它也会抛出权限被拒绝的异常。

这就是我将位图保存为文件的方式

private void downloadImage(Bitmap bitmap)
    {
        try{
            String fileName = String.valueOf(System.currentTimeMillis())+".jpeg";
            File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), fileName);

            if(file.exists()){
                file.delete();
            }

            OutputStream os = new BufferedOutputStream(new FileOutputStream(file));
            bitmap.compress(Bitmap.CompressFormat.JPEG, 100, os);


            Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
            Uri contentUri = Uri.fromFile(file);
            mediaScanIntent.setData(contentUri);
            sendBroadcast(mediaScanIntent);
            Toast.makeText(getBaseContext(),"Image saved to your device",Toast.LENGTH_SHORT).show();
        }
        catch (IOException e)
        {
            Toast.makeText(getBaseContext(),e.getMessage(),Toast.LENGTH_SHORT).show();
        }
    }

当我保存时,它会像这样向我敬酒。

这些都是我在清单文件中设置的权限。

 <uses-permission android:name="android.permission.WAKE_LOCK"/>
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

为什么会抛出这个错误?如何更正我的代码?

【问题讨论】:

标签: android bitmap android-permissions android-file android-external-storage


【解决方案1】:

我猜你正在为 Android M 开发?对于 Andorid M,您必须在运行时获得权限。

请看here

搜索“Android M 运行时权限”,你会发现成千上万的例子和解释。

【讨论】:

  • 非常感谢。这就是问题所在。现在我解决了。
猜你喜欢
  • 1970-01-01
  • 2020-06-04
  • 1970-01-01
  • 2017-05-14
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多