我写的是运行简单的android相机应用程序在android 4上运行它。
代码最初将摄像头意图定义为
Intent cameraIntent = new Intent();
cameraIntent.setType(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
当我尝试运行此应用程序时,它抛出以下异常: -
07-07 12:44:09.755:E / AndroidRuntime(11533):android.content.ActivityNotFoundException:找不到处理Intent的活动{typ = android.media.action.IMAGE_CAPTURE}
然而,当我尝试通过定义“cameraIntent”运行相同的程序时,它工作正常 -
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
我认为通过setter或构造函数将“action”传递给intent是一样的。
但它似乎不是这样,因为通过setter方法传递“action”会抛出异常,同时将它通过构造函数传递给新的Intent工作正常。知道为什么会这样吗?
答案 0 :(得分:1)
这段代码很好用:
Intent cameraIntent = new Intent();
cameraIntent.setAction(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
而不是
Intent cameraIntent = new Intent();
cameraIntent.setType(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
监守
设置显式MIME数据类型。
和
设置要执行的常规操作。