Intereting Posts
Как сделать редактируемый текст не редактируемым, а кликабельным в JAVA Java / Android: чтение / запись массива байтов через сокет Извлеките все видеофрагменты в Android Консоль разработчика Android: количество установок меньше, чем активная установка и не увеличивается. Что не так? Как работает 9patch png в приложениях для Android RecyclerView notifyItemInserted () Анимация не отображается, когда позиция равна 0, но отлично работает с другой позицией Таймер Android в сервисе Html5 <audio>: как использовать встроенные элементы `next` и` previous` на iOS 4.2 / Android 2.3 Как проверить URL / имя сайта в EditText на Android? Ormlite или sqlite Какой из них подходит для Android? Как удаленная служба может отправлять сообщения связанным действиям? Как использовать намерения для просмотра данных календаря? Android Как правильно получить значение с коммутатора? Как получить TimeZone от мобильного телефона Android? Что не так с моим кодом – Уведомление – звук не вибрирует

Java.Lang.RuntimeException, setParameters не удалось выполнить в версии для Android (4.1.1)

Я разработал приложение, которое фиксирует фотографию, когда вы нажимаете на нее. Он хорошо работает на вкладке Acer (захват изображения и сохранение в SD-карте). Теперь, когда я запускаю одно и то же приложение в Samsung Galaxy (Android-4.1.1), мое приложение получает сообщение «К сожалению приложение остановилось», когда нажимает на пунш. И мой код здесь.

// ClockIn functionality clockin_btn.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { clockin_btn.setEnabled(false); camera.stopPreview(); capturePhoto(0); // showing one error here in log cat previewing = false; clockin_label.setText(String.format(session_msg,logout_seconds)); ticker.setBase(SystemClock.elapsedRealtime()); ticker.start(); } }); private String capturePhoto(int clockInOutMode) { final int mode = clockInOutMode; img_file = String.format("%d.jpg", System.currentTimeMillis()); Camera.PictureCallback mCall = new Camera.PictureCallback() { public void onPictureTaken(byte[] data, Camera camera) { try { Bitmap mBitmap = BitmapFactory.decodeByteArray(data, 0, data.length); File file = new File(Constants.EMP_IMG_LOCATION, img_file); FileOutputStream fOut = new FileOutputStream(file); mBitmap.compress(Bitmap.CompressFormat.JPEG, 80, fOut); fOut.flush(); fOut.close(); if ( mode == 0) { clockIn(img_file); } else { clockOut(img_file); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }; Camera.Parameters cameraParams = camera.getParameters(); List<Camera.Size> sizes = cameraParams.getSupportedPictureSizes(); Camera.Size result = null; for (int i=0;i<sizes.size();i++){ result = (Size) sizes.get(i); Log.i("PictureSize", "Supported Size.Width: " + result.width + "height: " +result.height); } cameraParams.setPictureSize(640, 480); camera.setParameters(cameraParams); System.gc(); camera.setPreviewCallback(null); camera.takePicture(null, null, mCall); // showing one error here in logcat return img_file; } 

Мой Logcat отображается как:

 03-27 04:52:19.273: E/AndroidRuntime(4105): FATAL EXCEPTION: main 03-27 04:52:19.273: E/AndroidRuntime(4105): java.lang.RuntimeException: setParameters failed 03-27 04:52:19.273: E/AndroidRuntime(4105): at android.hardware.Camera.native_setParameters(Native Method) 03-27 04:52:19.273: E/AndroidRuntime(4105): at android.hardware.Camera.setParameters(Camera.java:1452) 

И мой файл android.manifest.xml:

  <uses-feature android:name="android.hardware.camera" /> <uses-feature android:name="android.hardware.camera.autofocus" /> <used-feature android:name="android.hardware.location" /> <used-feature android:name="android.hardware.camera.setParameters" /> 

Вызовите метод startPreview, прежде чем вы вызовете метод camera.takePicture(null, null, mCall); И метод startPreview, который я использовал,

 private void startPreview() { if (cameraConfigured && camera!=null) { camera.startPreview(); inPreview=true; } } 

И через это я решил свою проблему … Это может помочь вам, ребята.

Он не работает во всех случаях. Вы вызываете getSupportedPictureSizes() тогда вы можете получить список. И выберите параметры в setPictureSize() из списка.

 private void flipBackToFrontCamera() { if (mCamera != null) { mCamera.stopPreview(); mCamera.release(); mCamera = null; } mCamera = Camera.open(1); if (mCamera != null) { try { mCamera.setPreviewDisplay(surfaceView.getHolder()); mCamera.startPreview(); } catch (IOException e) { e.printStackTrace(); } } }