我正在尝试加载一个只显示系统库中视频文件的文件列表。
final Intent intent1 = new Intent(Intent.ACTION_PICK);
intent1.setDataAndType(android.provider.MediaStore.Video.Media.EXTERNAL_CONTENT_URI, "video/*");
startActivityForResult(intent1, ACTIVITY_SELECT_VIDEO);
我在调试器上遇到ActivityNotFound
异常,导致应用在实际手机上崩溃 BUT ,图库加载时只显示视频文件。
这正是加载图像文件时的工作原理,除非没有崩溃。
我如何:
a)始终加载适当的画廊
b)捕获此异常或使用条件语句避免它,因为它在所有设备上的行为都不相同
答案 0 :(得分:1)
始终加载适当的画廊
我会转储"video/*"
,只在Uri
构造函数中提供Intent
。 android.provider.MediaStore.Video.Media.EXTERNAL_CONTENT_URI
应该已经确定了视频的范围,这对于集合来说是错误的MIME类型。
或者,使用android.provider.MediaStore.Video.Media.CONTENT_TYPE
作为MIME类型,而不是"video/*"
。
抓住这个例外
使用try
/ catch
块,与捕获Java中的任何异常的方式相同。 ActivityNotFoundException
是RuntimeException
。
或使用条件语句来避免它
使用PackageManager
以及queryIntentActivities()
或resolveActivity()
。