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

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

问题描述:

下面的代码工作的大部分时间:什么是打开图库的可靠方法?

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

它抛出以下异常有时(由错误日志从用户报告):

android.content.ActivityNotFoundException:无活动处理意图{ ACT = android.intent.action.VIEW DAT =含量://媒体/内部/图像/媒体}

堆栈跟踪:

android.content.ActivityNotFoundException:无活动发现处理 意图{行为= android.intent.action.VIEW DAT =含量://媒体/内部/图像/媒体}在 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.s tartActivityForResult(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设备没有图库。

我想知道如果一些用户的Android设备没有画廊。

没有为任何Android装置具有任何导出活动,支持该特定Intent结构(ACTION_VIEW无论何种MIME类型被绑定到该Uri,加上content方案)没有要求。

除此之外,没有一个名为“图库”的应用程序。在大约20亿个设备和大约10,000个设备模型中,可能有数百个应用程序担任这个普通角色,而设备可能没有任何此类应用程序。

什么是在Android上打开Gallery的可靠方法?

See CATEGORY_APP_GALLERY,并确保处理没有匹配活动的情况。

+0

感谢您的澄清。在我们所有测试的Android设备和Android模拟器上,Gallery是应用程序页面上的一个项目。它不是一个应用程序? – Hong

+1

@洪:有很多名为“图库”的应用程序。我可以想象,有100多款应用程序可以作为预先安装在这些〜10,000设备型号上的“图库”。 – CommonsWare

+1

@洪:更重要的是,你的代码与画廊无关。您正在寻找可以查看提供商的特定内容集合的活动。我可以轻松编写一个名为“这不是图库”的应用程序,该应用程序提供了一个响应该“意图”结构的活动。我提供的功能可能与您要查找的内容无关。 – CommonsWare

试试这个

Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
intent.setType("image/*"); 
startActivityForResult(Intent.createChooser(intent, "Select image"), reqCode); 
+2

感谢您的帮助。我只想让用户以正常的方式使用Gallery。换句话说,它相当于单击Android上的图库。 – Hong