問題に直面しました:ACTION_IMAGE_CAPTUREインテントの動作は、ハードウェアの製造元によって異なります。ACTION_IMAGE_CAPTUREでバグを乗り越える美しい方法
私はフォトギャラリーに挿入されたカメラから写真を取得するための最良の方法は
を次のようになり、その後、onActivityResult
にURIを取得する必要があり、思う:このことを、
switch (requestCode) {
case CAPTURE_IMAGE_REQUEST: {
if(resultCode == Activity.RESULT_OK) {
Uri uri = intent.getData();// content uri of photo in media gallery
//do something with this
}
break;
}
しかし、私は見ます多くのデバイスでは機能しません。
- いくつかのデバイスは、このイベントにbugを持っているので、fullsized写真を取得する方法はありません、あなたが唯一の公共ディレクトリにtmpファイルを使用して512px幅の広い写真を取得することができます。また、私は、カメラアプリの挙動のいくつかの異なるシナリオが発見しました
- 一部のデバイス(鉱山を含む)は写真をギャラリーに挿入しますが、Uriは返されません。 (getData()はnullを返し、intre extrasはbooleanキー 'specify-data'、value = trueのみを持つ)公開の一時ファイルを使って写真を取得しようとすると、写真はギャラリーと一時ファイルの両方に挿入されます。
- 一部のデバイスは、ギャラリーに撮影した写真を挿入していない - と私は手動で
- をそれを行う必要があり、私は知らないが、だから、他の異なるscenarious
があることができ、そこにこのような問題を管理する上でのベストプラクティスであります幅広いデバイスやメーカーを対象としていますか?
この場合、カメラから写真を撮ってギャラリーに挿入してからギャラリーの写真を撮る必要があります。
まだ問題は解決されていません。 – Arseniy
@muzhigほとんどのバグは修正されていますが、OEMはアップグレードを展開できません。 – Reno