2011-07-20 9 views
5

私は主な機能がAPIを使用して写真を撮って、私が与えたパスに保存するプログラムを作った。さまざまなAndroid搭載端末で通常写真を撮るのはなぜ大変ですか?

しかし、エミュレータや携帯電話でGoogleの元のROMを使ってテストしたときとは違うものが、別の携帯電話で正しく表示されません。

理論的には、私がIntentへのパスを与えた場合、写真は電話機のデフォルトギャラリーに表示されませんが、MOTOでは写真は自分のパスとデフォルトの画像ディレクトリの両方に保存されます。サムスンでは、Intentのカメラから戻ったときに私のアプリが黙ってクラッシュする。また、いくつかの電話機でのみ、カメラアクティビティのメニューボタンを押してメニューを表示できます。さらに、カメラアクティビティの設定メニューで設定したサイズで写真を保存する人もいます。

これは、メーカーが携帯電話のROMをカスタマイズしてカメラアクティビティが異なる動作をするためです。

誰でもこのような状況を回避する方法を知っていますか?または、目的以外で写真を撮る他の方法がありますか"android.media.action.IMAGE_CAPTURE"

以下は、写真を撮る方法のコードです。

Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); 
    intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(getpath()+"_.jpg"))); 
    intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1); 
    startActivityForResult(intent, 0); 

答えて

1

写真撮影のための設定と同じ他の保つこのコードを使用してみてください。

最後に私は、メーカーがカメラアプリを含めてロムをカスタマイズしているため、デフォルトのカメラアプリを呼び出すのではなく、代わりにhardware.cameraという写真を撮ることができます。これにはインターネット上で多くの例があります。

0

私が試したとき@balbanシャーがすべて同じ仕事を提供する方法

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(origImageFile)); 
startActivityForResult(cameraIntent, 0); 
関連する問題