【问题标题】:Open an Image in Internal Storage Using Content Provider使用 Content Provider 在内部存储中打开图像
【发布时间】:2018-07-03 22:16:35
【问题描述】:

假设我用我的应用打包了一张图片,我想用默认的图片查看器/用户选择作为默认的任何图片查看器打开它。我该怎么做?

已经有这个帖子了:Open an image using URI in Android's default gallery image viewer 但是很多答案已经过时了,因为由于引入了android N,必须使用内容提供者。

我能找到的唯一答案是这个:

File file = ...;
final Intent intent = new Intent(Intent.ACTION_VIEW)//
                                    .setDataAndType(VERSION.SDK_INT >= VERSION_CODES.N ?
                                                    android.support.v4.content.FileProvider.getUriForFile(this,getPackageName() + ".provider", file) : Uri.fromFile(file),
                            "image/*").addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

但是,根据此解决方案的作者,此代码仅适用于外部存储的图像,不适用于可能与我的应用程序打包的图像。

【问题讨论】:

    标签: android android-intent kotlin android-contentprovider android-image


    【解决方案1】:

    您将无法通过外部应用程序打开与应用程序一起打包的图像(在可绘制或任何资源中)。您应该首先将其复制到(至少)internal file storage。之后,您可以实现 FileProvider 来提供对该文件的访问权限。

    如果您需要更多详细信息,请告诉我。希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      相关资源
      最近更新 更多