Почему так сложно фотографировать на разных телефонах Android? - PullRequest
5 голосов
/ 20 июля 2011

Я создал программу, основной функцией которой является использование API для фотографирования и сохранения их по указанному мною пути.

Но на разных телефонах дело обстоит не так, как при тестировании наэмулятор или телефон с ПЗУ Google.

Теоретически.Если я указал путь к Намерению, фотография не должна отображаться в галерее телефона по умолчанию, но в режиме MOTO Defy фотографии сохранялись как в моем пути, так и в каталоге изображений по умолчанию.А на Самсунге мое приложение молча вылетает при возврате из камеры Намерение.И только на некоторых телефонах я могу вызвать меню, нажав кнопку меню в Camera Activity.И даже некоторые из них сохраняют фотографию как размер, который я установил в меню настроек Camera Activity.

Я думаю, это потому, что производители настроили ПЗУ на своих телефонах, чтобы Camera Activity действовала по-другому.

Кто-нибудь знает, как избежать этой ситуации?Или есть какой-то другой способ фотографировать не по назначению "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);

Ответы [ 2 ]

1 голос
/ 09 августа 2011

То, как предложил @balban shah, работало так же, когда я пытался.

Наконец-то я обнаружил, что разные производители настраивают свои Rom, в том числе приложение Camera, поэтому лучший способ - не вызывать приложение камеры по умолчанию, вместо этого мы можем написать действие, используя hardware.camera для съемки. Примеров тому есть и в Интернете.

0 голосов
/ 20 июля 2011

попробуйте использовать этот код, оставьте другие настройки для захвата фотографий

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(origImageFile));
startActivityForResult(cameraIntent, 0);
...