Java 从外部存储器中打开映像
几个小时以来,我一直在尝试从Android的外部存储器中以Java 从外部存储器中打开映像,java,android,uri,android-external-storage,Java,Android,Uri,Android External Storage,几个小时以来,我一直在尝试从Android的外部存储器中以的意图打开一个图像。ACTION\u VIEW。正如你可能已经发现的那样,我仍然无法做到这一点 我在谷歌搜索了很多地方,我尝试了很多方法,但是没有一个成功。我能找到的都是一岁以下的问题。我尝试使用FileProvider,结果如下: File imagePath = new File(Environment.getExternalStorageDirectory(), "LyceeLamartine/cache"); File newFi
的意图打开一个图像。ACTION\u VIEW
。正如你可能已经发现的那样,我仍然无法做到这一点
我在谷歌搜索了很多地方,我尝试了很多方法,但是没有一个成功。我能找到的都是一岁以下的问题。我尝试使用FileProvider
,结果如下:
File imagePath = new File(Environment.getExternalStorageDirectory(), "LyceeLamartine/cache");
File newFile = new File(imagePath, "calendrier.png");
Uri contentUri = FileProvider.getUriForFile(MainActivity.this, "ml.toufic.lyceelamartine.fileprovider", newFile);
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setDataAndType(contentUri, "image/*");
startActivity(intent);
上面的代码成功地打开了谷歌照片,但它显示了一个黑屏,路径似乎是:content://ml.toufic.lyceelamartine.fileprovider/name/calendrier.png
这似乎是一条内部存储路径
我想访问的图像存储在:“/storage/emulated/0/LyceeLamartine/cache/calendrier.png”中,我使用的是安卓O(8.0)手机
我仍然是Java的初学者,任何帮助都将不胜感激
路径似乎是:content://ml.toufic.lyceelamartine.fileprovider/name/calendrier.png 这似乎是一条内部存储路径
这不是一条道路。这是一个Uri
。它有一个方案(内容
)。它指向您的FileProvider
(ml.toufic.lyceelamartine.FileProvider
)。这似乎很好-如果Uri
有问题,FileProvider
会在您尝试创建它时引发异常
上面的代码成功打开谷歌照片,但显示了一个黑屏
您的意图有两个问题
首先,不要使用通配符MIME类型。这是你的档案。你知道MIME类型是什么。使用实际的MIME类型(在本例中为image/png
)
其次,在调用startActivity()
之前,在Intent
上调用addFlags(Intent.FLAG\u GRANT\u READ\u URI\u PERMISSION)
,作为设置的一部分。目前,没有任何应用程序有权使用您的内容
路径似乎是:content://ml.toufic.lyceelamartine.fileprovider/name/calendrier.png 这似乎是一条内部存储路径
这不是一条道路。这是一个Uri
。它有一个方案(内容
)。它指向您的FileProvider
(ml.toufic.lyceelamartine.FileProvider
)。这似乎很好-如果Uri
有问题,FileProvider
会在您尝试创建它时引发异常
上面的代码成功打开谷歌照片,但显示了一个黑屏
您的意图有两个问题
首先,不要使用通配符MIME类型。这是你的档案。你知道MIME类型是什么。使用实际的MIME类型(在本例中为image/png
)
其次,在调用startActivity()
之前,在Intent
上调用addFlags(Intent.FLAG\u GRANT\u READ\u URI\u PERMISSION)
,作为设置的一部分。目前,没有任何应用程序有权使用您的内容。请看-听是否对您有帮助:-感谢穆罕默德的快速回复,但不幸的是,当我真的想使用intent
打开图像时,我并没有试图在imageView
中打开图像,这是从2013年开始的。请看-听是否对您有帮助:-感谢穆罕默德的快速回复,但是,不幸的是,当我真的想用intent
打开图像时,我并没有试图在imageView
中打开图像,这是从2013年开始的。非常感谢!你救了我,我花了好几个小时才修好!!我认为是addFlags(Intent.FLAG\u GRANT\u READ\u URI\u PERMISSION)
使它起作用。现在就接受这个!知道如何检查文件是否存在吗@CommonsWare@TouficBatache:newFile.exists()
。非常感谢!你救了我,我花了好几个小时才修好!!我认为是addFlags(Intent.FLAG\u GRANT\u READ\u URI\u PERMISSION)
使它起作用。现在就接受这个!知道如何检查文件是否存在吗@CommonsWare@TouficBatache:newFile.exists()
。