【发布时间】: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,但我熟悉软件开发中基于服务的架构。