2015-03-19 3 views
1

Приложение для Android было отлично работает на всех устройствах Android с версии 2.3 до 4.4. Однако, когда я обновил Samsung Galaxy S4 до LOLLIPOP и протестировал указанное приложение, есть несколько ошибок в функциях, таких как камера, карта и т. Д.Проблема с камерой Lollipop для Android

Ниже приведен фрагмент кода, используемый в моем приложении для использования встроенной камеры:

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK && null != data) 
    {  
     Bitmap camImg = (Bitmap) data.getExtras().get("data"); 
    } 
} 

Здесь я получаю (Bitmap) data.getExtras(). получить ("данные") в нуль. Есть ли альтернативное решение для этого кода. Любая помощь будет оценена по достоинству.

+0

Просьба показать ваш вызов 'startActivityForResult()'. – CommonsWare

+0

Я использую специальный лист действий. См. Приведенный ниже код. \t Намерение cameraIntent = новое Намерение ( \t \t \t \t \t \t android.provider.MediaStore.ACTION_IMAGE_CAPTURE); \t \t \t \t startActivityForResult (cameraIntent, CAMERA_REQUEST); – prijin

ответ

0

Возможно, вы столкнулись с документацией, и оказалось, что выбранное здесь приложение камеры не является.

Это один из рисков делегирования подобной работы стороннему приложению - сторонние приложения могут иметь ошибки.

Ваш выбор:

  1. Переключение на использование EXTRA_OUTPUT указать Uri для полноразмерного изображения. В ваших результатах, если у вас нет dataBitmap, попробуйте прочитать полноразмерное изображение, используя BitmapFactory.Options, чтобы спустить его к чему-то более подходящему размеру. Там могут быть приложения для камеры, которые несут честь ACTION_IMAGE_CAPTURE, которые не работают, но это должно уменьшить количество таких сломанных приложений.

  2. Используйте API-интерфейсы 10 или android.hardware.camera2 самостоятельно и не полагайтесь на стороннее приложение.

+0

Спасибо, Марк Мерфи. Попробуй это и сообщишь. Между тем, почему этот вопрос ниспровергнут. Просто прошу из любопытства. – prijin

+0

@prijin: «Между тем, почему этот вопрос ниспровергнут, просто спрашивая из любопытства» - я не знаю. – CommonsWare

0

Я бы не согласился с CommonsWare на этом. Я использую android.hardware.Camera с моим приложением и тестированием с помощью Samsung Galaxy S4, работающего на Lollipop. Кажется, проблема в том, что onCreate вызывается перед onActivityResult при запуске приложения на Samsung Lollipop.

Мое предложение состоит в том, чтобы установить максимальную цель в приложении до 20 (Android 4.4), пока Samsung не сортирует это. Это вопрос Samsung.

android:maxSdkVersion="20"