2

フローズンヨーグルトからアイスクリームサンドイッチまで、これが方法です:

Intent intent = new
Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File file = new File(Environment.getExternalStorageDirectory(), "test.jpg");
tempUriCameraDeviceNotSuported = Uri.fromFile(file);
intent.putExtra(MediaStore.EXTRA_OUTPUT,
tempUriCameraDeviceNotSuported);
startActivityForResult(intent, 0);

しかし、Jelly Beanの場合は機能しません。次のようにする必要があります:

Intent takePicture = new Intent(
MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(takePicture, 0);

このバグがジェリービーンズでのみ発生するのか、ハードウェアモデルによっても発生するのかはわかりません。グーグルはこの問題について一言も言わない(なぜ?なぜ?)。すべてのデバイスとその適切なカメラ実装のリストをどこで見つけることができるかを誰かが知っていますか?誰かがこれを行うための最良の方法を知っていますか?

4

3 に答える 3

1

OSのバージョンはいつでも確認できます。

    if (android.os.Build.VERSION.SDK_INT >= 17) {
        Intent takePicture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        startActivityForResult(takePicture, 0);
    } else {
        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        File file = new File(Environment.getExternalStorageDirectory(),
                "test.jpg");
        tempUriCameraDeviceNotSuported = Uri.fromFile(file);
        intent.putExtra(MediaStore.EXTRA_OUTPUT,
                tempUriCameraDeviceNotSuported);
        startActivityForResult(intent, 0);
    }
于 2013-01-17T15:46:54.400 に答える
1

FrojoからIcreクリームまでこれが方法です

あなたがあなたのコードでしていることはあなたのために写真を撮るようにランダムなアプリに頼んでいることを理解してください。そのランダムなアプリは次のようになります。

  • AOSPカメラアプリ、または
  • デバイスメーカーの交換用カメラアプリ、または
  • ユーザーがインストールしたカメラアプリ、または
  • MediaStore.ACTION_IMAGE_CAPTUREたまたまデバイス上に存在するサポートを選択するその他のもの

しかし、ジェリービーンズの場合は機能しません

才能のあるプログラマーは、「それが機能しない」とはどういう意味かを説明していたでしょう。

このバグがジェリービーンズでのみ発生するかどうかはわかりません

才能のあるプログラマーは「バグ」が何であるかを説明したでしょう。

それを超えて、Android自体はそれとはほとんど関係がありません。バグは、おそらく、その「ジェリービーンズ」デバイスで使用したカメラアプリにあります。

グーグルはこの問題について一言も言わない(なぜ?、なぜ?)。

才能のあるプログラマーは、「問題」が「機能しない」よりも詳細に説明しているでしょう。

すべてのデバイスとその適切なカメラ実装のリストをどこで見つけることができるかを誰かが知っていますか?

1,000以上のAndroidデバイスがあります。Playストアやその他の場所に「カメラアプリ」またはその他の方法でサポートされているアプリが1,000以上あると合理的に確信していますMediaStore.ACTION_IMAGE_CAPTURE。これは、リストにデバイスとアプリの組み合わせが1,000,000を超えていることを意味します。このようなリストを自分で作成することを歓迎します。

それがあなたのケースにとって信頼できないと感じるならばMediaStore.ACTION_IMAGE_CAPTURE、あなたはを使ってあなた自身で写真を撮ることを歓迎しますandroid.hardware.Camera

また、このサンプルアプリであるFWIWは、最初のコードスニペットとほぼ同じコードを使用しており、Android4.2.1を実行しているGalaxyNexusとAndroid4.1.2を実行しているNexusSで正常に動作します。どちらも「ジェリービーンズ」です。 "。

于 2013-01-17T15:54:07.787 に答える
0

私の例を確認してください。実際には2.3.3、4.1、4.2で動作します。試してみてください。

GithubのGalleryCameraDemo

于 2013-06-19T12:30:28.317 に答える