Ho riscontrato un problema: ACTION_IMAGE_CAPTURE il comportamento dell'intento dipende dal produttore dell'hardware.Bel modo di venire su bug con ACTION_IMAGE_CAPTURE
credo, modo migliore per ottenere foto dalla fotocamera inserita nella galleria fotografica deve essere qualcosa di simile a seguente
e quindi ottenere uri in onActivityResult
:
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;
}
Ma vedo che questo non funziona su molti dispositivi; Inoltre, ho trovato diversi scenari differenti di comportamento fotocamera app:
- alcuni dispositivi hanno bug con questo evento, quindi non c'è alcun modo per ottenere foto fullsized, e si può ottenere 512px foto larga utilizzando il file tmp nella directory pubblico solo
- alcuni dispositivi (incluso il mio) inseriscono foto nella galleria, ma non restituiscono Uri. (getData() restituisce null, gli extra di intent hanno solo la chiave booleana 'specificare-data', value = true) Se provo a ottenere la foto attraverso il tempfile pubblico, la foto verrà inserita sia in galleria che in tempfile.
- alcuni dispositivi non inserire scattate le foto alla galleria - e devo farlo manualmente
- Non so, ma non ci può essere altro diverso scenarious
Quindi, c'è migliori pratiche nella gestione di tali problemi per coprire una vasta gamma di dispositivi e produttori?
In questo caso ho bisogno di scattare foto dalla fotocamera, inserirla nella galleria, quindi ottenere uri di foto nella galleria.
e i problemi non sono ancora risolti. – Arseniy
@muzhig La maggior parte dei bug sono corretti, tuttavia i gestori non consentono agli OEM di eseguire gli aggiornamenti. – Reno