0

我正在使用这段非常简单的代码在 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)
...

我在代码周围进行了一些异常处理以捕获异常并显示错误,但我不知道为什么这段代码在此设备上失败。用户确认相机工作正常。

4

1 回答 1

0

ACTION_IMAGE_CAPTURE首先,即使设备有一个实际的相机,也不需要设备具有支持 的 Activity 。

其次,特别是在 Android 4.3+ 平板电脑上,使用该设备的人可能无法访问ACTION_IMAGE_CAPTURE活动,即使安装了一个活动,因为该人可能在受限配置文件中运行。

于 2013-09-19T18:18:25.797 回答