打开图库的可靠方法是什么?

What is a reliable way to open the Gallery?

以下代码大部分时间都有效:

intent = new Intent(Intent.ACTION_VIEW, Uri.parse("content://media/internal/images/media"));
startActivity(intent);

有时会抛出如下异常(用户错误日志报告):

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=content://media/internal/images/media }

堆栈跟踪:

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=content://media/internal/images/media } at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1899) at android.app.Instrumentation.execStartActivity(Instrumentation.java:1589) at android.app.Activity.startActivityForResult(Activity.java:4228) at android.support.v4.app.k.startActivityForResult(SourceFile:50) at android.support.v4.app.p.startActivityForResult(SourceFile:79) at android.app.Activity.startActivityForResult(Activity.java:4187) at android.support.v4.app.p.startActivityForResult(SourceFile:859) at android.app.Activity.startActivity(Activity.java:4515) at android.app.Activity.startActivity(Activity.java:4483)

我想知道是否某些用户的 Android 设备没有图库。

I am wondering if some users' Android devices do not have Gallery.

任何 Android 设备都不需要导出任何支持特定 Intent 结构的 activity(ACTION_VIEW 任何与该结构相关的 MIME 类型Uri,加一个content方案)。

除此之外,没有一个名为 "Gallery" 的应用程序。在约 20 亿台设备和约 10,000 种设备型号中,可能有数百种应用程序充当此一般角色,而一台设备可能没有任何此类应用程序。

What is a reliable way to open Gallery on Android?

See CATEGORY_APP_GALLERY,一定要处理没有匹配到activity.

的情况