如何打开这个contentURI?

How to open this contentURI?

我制作了一个图像查看器(据说)可以打开来自电子邮件客户端的附件,它已经可以正确打开 PNG 文件。特别是,我使用 K9,它使用(基本上)此代码发送 ACTION_VIEW 意图:

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivityIfAvailable(getContext(), intent);

当我点击附件时,我的图像查看器报告如下 contentURI URL:

content://com.fsck.k9.tempfileprovider/temp/00ac996dc9f9539488ba4a6a349a8bf567267f5d?mime_type=image%2Fpng

我找不到/temp文件夹,所以我想我做错了什么,and/or我不知道如何处理"providers"?如何打开此 URI?

How do I open this URI?

与使用 contentfile 方案打开任何 Uri 的方式相同:

  • Context 上调用 getContentResolver() 以获得 ContentResolver
  • ContentResolver 上调用 openInputStream() 以在 Uri
  • 标识的内容上获得 InputStream