2011-06-30 3 views
5

У меня возникла проблема: поведение ACTION_IMAGE_CAPTURE зависит от производителя оборудования.Красивый способ получить ошибку с ACTION_IMAGE_CAPTURE

Я думаю, что лучший способ получить фото с камеры, установленной в фотогалерее должно быть что-то вроде следующих

, а затем получить URI в 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; 
    } 

Но я вижу, что это не работает на многих устройствах; Более того, я нашел несколько различных сценариев поведения приложения Камера:

  • некоторые устройства имеют bug с этим событием, так что нет никакого способа, чтобы получить fullsized фотографии, и вы можете получить 512 пикселей широкий фотографии с помощью файла TMP в общедоступном каталоге только
  • некоторые устройства (включая мой) вставляют взятые фотографии в галерею, но не возвращают Uri. (getData() возвращает значение null, у намерений extras есть только логический ключ 'define-data', value = true) Если я попытаюсь получить фотографию через общедоступный tempfile, тогда фото будет вставлено в галерею и tempfile.
  • некоторые устройства не вставить сфотографировались в галерею - и я должен сделать это вручную
  • я не знаю, но может быть и другие разные scenarious

Итак, есть лучшие практики в управлении такими проблемами для охвата широкого спектра устройств и производителей?

В этом случае мне нужно взять фотографию с камеры, вставить ее в галерею, затем получить uri фотографии в галерее.

ответ

0

Часть этого уже есть ответ:

Я не думаю, что вы должны проверять другие случаи. Google и Android OEM контролируют эти проблемы, сообщая о них, и, надеюсь, они будут исправлены.

+2

и проблемы все еще не исправлены .. – Arseniy

+1

@muzhig Большинство ошибок исправлены, но, тем не менее, они не позволяют OEM-производителям обновлять обновления. – Reno

Смежные вопросы