使用构造函数和setter方法将操作传递给Android Intent

时间:2012-07-07 12:02:23

标签: android android-intent

我写的是运行简单的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工作正常。知道为什么会这样吗?

1 个答案:

答案 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);

监守

setType(String type)用于:

  

设置显式MIME数据类型。

setAction(String action)用于:

  

设置要执行的常规操作。