在我的应用中,我显示了帖子列表,其中的帖子可能具有图像。当用户单击帖子图像时,创建选择器将显示可用选项,例如“照片”,“图库”。我的问题是,为什么无法在Android 7.0或API 24及更高版本上打开图片?我收到错误消息“无法打开文件。”在API级别23及以下级别,我提供了实际的文件路径,似乎工作正常。在发布此问题之前,我确认了以下事情。有趣的是,“照片”可以打开它。


我使用FileProvider获得了正确的内容uri。我的uri看起来像这样:

内容://package.fileprovider/attachment/文件名
我正在使用正确的mime类型。
我正在使用正确的意图和权限标志。请参见以下代码:


意图myIntent =新意图(Intent.ACTION_VIEW); myIntent.putExtra(ShareCompat.EXTRA_CALLING_PACKAGE,getActivity()。getPackageName()); myIntent.putExtra(ShareCompat.EXTRA_CALLING_ACTIVITY,getActivity()。getComponentName());

myIntent.setDataAndType(uri,mimeType); myIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); startActivity(Intent.createChooser(myIntent,“打开文件:”));

最佳答案

仅适用于以上的Android API 24-牛轧糖设备

 File file = new File(String.valueOf(path), imageName+".png"); //it is image file name.
 if(Build.VERSION.SDK_INT>=24){
      Intent intent = new Intent();

      intent.setAction(Intent.ACTION_VIEW);

      intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); //must provide

      Uri photoUri = FileProvider.getUriForFile(YourCurrentActivity.this,
                      android.support.v4.BuildConfig.APPLICATION_ID +
                      ".fileprovider", finalFile);

      intent.setData(photoUri);

      YourCurrentActivity.this.startActivity(intent);
 }

关于android - 图库无法在Android 7.0上打开内容uri图像文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42585451/

10-11 00:14