Android 未找到处理MediaStore.ACTION\u IMAGE\u捕获意图的活动

Android 未找到处理MediaStore.ACTION\u IMAGE\u捕获意图的活动,android,android-intent,android-camera,Android,Android Intent,Android Camera,我使用这段相当简单的代码在Android设备上捕获图像 File tmpFile = ...; Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(tmpFile)); startActivityForResult(intent, CAPTURE_IMAGE); 除了一个在没有摄像头的Kindle设备上运行此功能的用户

我使用这段相当简单的代码在Android设备上捕获图像

File tmpFile = ...;
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(tmpFile));
startActivityForResult(intent, CAPTURE_IMAGE);
除了一个在没有摄像头的Kindle设备上运行此功能的用户外,其他数千名用户都可以使用此功能。今天我从一台装有摄像头的设备上收到了一份事故报告:

ANDROID_VERSION=4.2.1
BRAND=Hisense
PHONE_MODEL=M470BSA
STACK_TRACE=android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.media.action.IMAGE_CAPTURE (has extras) }
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1622)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1417)
at android.app.Activity.startActivityForResult(Activity.java:3370)
at android.app.Activity.startActivityForResult(Activity.java:3331)
...

我已经对代码进行了一些异常处理,以捕获异常并显示错误,但是我不知道为什么这段代码在这个设备上失败。用户确认摄像头工作正常。

首先,不要求设备具有支持
操作\u图像捕获的活动,即使设备具有实际摄像头


其次,特别是在安卓4.3+平板电脑上,使用该设备的人可能无法访问
操作\u图像\u捕获
活动,即使安装了该活动,因为该人可能在受限制的配置文件中运行。

在这种情况下,该设备是4.2.1,因此没有受限制的配置文件。是的,可能是没有支持此功能的活动,但对我来说,这还是不太可能的,因为系统上有一个可以正常工作的摄像头应用程序。在开始意图之前有没有办法找到答案?例如,为了在我的应用程序中禁用捕获选项?@farindk:“是的,可能是没有任何活动支持这一点,但对我来说仍然不太可能,因为系统上有一个正在工作的摄像头应用程序”——海信工程师可能编写了自己的摄像头应用程序,却忽略了添加对这一点的支持。“在启动意图之前,有没有办法找到答案?”--使用
PackageManager
querytentActivities()
。如果
列表返回为空,则不存在匹配项,如果您尝试在同一
Intent
@commonware上调用
startActivity()
/
startActivityForResult()
,您将得到
ActivityNotFoundException
@commonware是否有解决方案?