【发布时间】:2016-09-23 02:03:19
【问题描述】:
我的 Android 应用程序出现以下异常。
No Activity found to handle Intent { act=android.media.action.STILL_IMAGE_CAMERA (has extras) }
我知道我的设备 MC70 有一个摄像头。
bool hasFeature = packageManager.hasSystemFeature(PackageManager.FEATURE_CAMERA);
int numCameras = android.hardware.Camera.getNumberOfCameras();
hasFeature 为 true 且 numCameras > 0
设备已安装 SD 卡:
Boolean isSDPresent = android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);
在我的 AndroidManifest.xml 文件中:
<uses-feature android:name="android.hardware.camera" android:required="true" />
<uses-permission android:name="android.permission.CAMERA" />
final PackageManager packageManager = context.getPackageManager();
这个列表是空的,可能是一个不好的信号:
final Intent intent = new Intent(action);
List<ResolveInfo> list = packageManager.queryIntentActivities(intent,
PackageManager.MATCH_DEFAULT_ONLY);
此代码必须在仅限于 KitKat 4 API 19 的 MC70 上运行。
但是当我打电话时:
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(takePictureIntent, 1);
我得到了例外:
No Activity found to handle Intent { act=android.media.action.STILL_IMAGE_CAMERA_SECURE (has extras) }
我试过了:
- MediaStore.ACTION_IMAGE_CAPTURE
- MediaStore.ACTION_IMAGE_CAPTURE_SECURE
- MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA
- MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE
全部抛出异常。为什么?
【问题讨论】:
-
你在用
startActivityForResult(takePictureIntent, your_id);吗? -
是的。那是引发异常的实际行。我已经编辑了上面的问题。
-
尝试在不同的手机上运行应用程序,我找不到任何合适的答案。连 DevGuru 都说:stackoverflow.com/questions/18902086/…
-
必须在专用条码扫描器 MC70 上运行才能工作。设备仅限于 KitKat 4 Api 19。已阅读 SO 链接,谢谢。