首页 > 解决方案 > 无法在 API21 上的图库中打开图像 - Kotlin

问题描述

我有一个应用程序,它显示来自 Firebase 存储的应用程序中的图像。我已经实现,当您单击图像时,它应该在图库中打开,以便用户能够缩放。

它在 API 28 Emulator 上运行良好,但在 API21 上运行时出现以下错误:

No Activity found to handle Intent { act=android.intent.action.VIEW *********

代码是:

photo2.setOnClickListener {

        val intent = Intent()
        intent.setAction(Intent.ACTION_VIEW)
        intent.setDataAndType(Uri.parse(uri2.toString()),"image/*")
        startActivity(intent)

    }

API21 不能处理这种类型的意图动作吗?

标签: androidkotlin

解决方案


API 21 可以处理这种类型的意图操作。

也许您没有任何应用程序可以image/*在您的设备上使用类型打开意图?尝试intent.resolveActivity()检测您是否有任何应用程序能够处理意图。

if (intent.resolveActivity(getPackageManager()) != null) {
    startActivity(intent);
} else {
    //there is no activity for image/* intent
    //show popup?
    Log.w("PHOTO", "No activity to handle image/* intent");
}

文档:https://developer.android.com/reference/android/content/Intent#resolveActivity(android.content.pm.PackageManager)


推荐阅读