0

私は、Android4で実行するための単純なAndroidカメラアプリケーションを実行するように作成されました。

コードには当初、カメラの意図が次のように定義されていました

Intent cameraIntent = new Intent();
cameraIntent.setType(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);

このアプリケーションを実行しようとすると、以下の例外がスローされていました:-

07-07 12:44:09.755:E / AndroidRuntime(11533):android.content.ActivityNotFoundException:インテントを処理するアクティビティが見つかりません{typ = android.media.action.IMAGE_CAPTURE}

しかし、以下のように「cameraIntent」を定義して同じプログラムを実行しようとすると、うまくいきました-

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);

セッターまたはコンストラクターを介してインテントに「アクション」を渡すことは同じだと思いました。

しかし、セッターメソッドを介して「アクション」を渡すと例外がスローされ、コンストラクターを介して新しいインテントに渡すと正常に機能するため、そうではないようです。なぜそうなのか?

4

1 に答える 1

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)は、次の目的で使用されます。

実行する一般的なアクションを設定します。

于 2012-07-07T12:07:02.817 に答える