【问题标题】:Permission Denied in order to load Image from Android Internal Storage权限被拒绝以从 Android 内部存储加载图像
【发布时间】:2015-07-21 03:35:21
【问题描述】:

开始学习java和app开发。我尝试使用硬编码路径显示单个图片。我得到一个错误,告诉我缺少必要的权限:

无法解码流:java.io.FileNotFoundException:/storage/emulated/0/media/logo.jpg:打开失败:EACCES(权限被拒绝)

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.snwflake22.helloworld" >
    <uses-permission android:name="ANDROID.PERMISSION.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="ANDROID.PERMISSION.WRITE_EXTERNAL_STORAGE"/>
    <application
    (...)
    </application>
</manifest>

函数本身如下所示:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    File image = new File(Environment.getExternalStorageDirectory()+"/media/", "logo.jpg");
    BitmapFactory.Options bmOptions = new BitmapFactory.Options();
    Bitmap bitmap = BitmapFactory.decodeFile(image.getAbsolutePath(), bmOptions);
    ImageView imageView = (ImageView) findViewById(R.id.imageView);
    imageView.setImageBitmap(bitmap);
}

我是否需要设置任何其他权限才能访问存储?还是媒体文件夹?

【问题讨论】:

  • 另外你还没有在你的onCreate 中使用setContentView。与权限错误无关,但您需要先修复它才能正常工作。
  • @MatterCat 它可能是服务或片段
  • 如果他们刚刚开始,很可能是 Activity。不过,我想这是公平的。
  • @MatterCat 嗯嗯是的,但我们应该关注他的错误,权限错误。
  • 它确实是一个服务,我可能刚开始接触java,但我熟悉软件开发中基于服务的架构。

标签: java android


【解决方案1】:

在 ANDROID.PERMISSION 上使用小型大写字母

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

【讨论】:

  • 为我解决了这个问题,谢谢。 android studio 的完成使其完全大写...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-31
  • 1970-01-01
  • 2020-06-04
  • 2015-08-22
  • 1970-01-01
  • 2018-04-13
  • 1970-01-01
相关资源
最近更新 更多