Take Picture без предварительного просмотра Android

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

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Camera.Parameters parameters = camera.getParameters(); parameters.setPictureFormat(PixelFormat.JPEG); camera.setParameters(parameters); SurfaceView mview = new SurfaceView(getBaseContext()); try { camera.setPreviewDisplay(mview.getHolder()); camera.startPreview(); camera.takePicture(null,null,photoCallback); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } Camera.PictureCallback photoCallback=new Camera.PictureCallback() { public void onPictureTaken(byte[] data, Camera camera) { Uri uriTarget = getContentResolver().insert(Media.EXTERNAL_CONTENT_URI, new ContentValues()); OutputStream imageFileOS; try { imageFileOS = getContentResolver().openOutputStream(uriTarget); imageFileOS.write(data); imageFileOS.flush(); imageFileOS.close(); Toast.makeText(AndroidTestJNIActivity.this, "Image saved: " + uriTarget.toString(), Toast.LENGTH_LONG).show(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finish(); } }; 

Когда я пытаюсь получить доступ к камере, я получаю исключение NullPointerException. Я не знаю, как его инициализировать. Я думаю, проблема в том, что камера никогда не инициализируется.

  05-29 14:40:20.330: E/AndroidRuntime(15571): FATAL EXCEPTION: main 05-29 14:40:20.330: E/AndroidRuntime(15571): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.achillessecurity.androidtestjni/com.achillessecurity.androidtestjni.AndroidTestJNIActivity}: java.lang.RuntimeException: Fail to connect to camera service 05-29 14:40:20.330: E/AndroidRuntime(15571): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1768) 05-29 14:40:20.330: E/AndroidRuntime(15571): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1784) 05-29 14:40:20.330: E/AndroidRuntime(15571): at android.app.ActivityThread.access$1500(ActivityThread.java:123) 05-29 14:40:20.330: E/AndroidRuntime(15571): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:939) 05-29 14:40:20.330: E/AndroidRuntime(15571): at android.os.Handler.dispatchMessage(Handler.java:99) 05-29 14:40:20.330: E/AndroidRuntime(15571): at android.os.Looper.loop(Looper.java:130) 05-29 14:40:20.330: E/AndroidRuntime(15571): at android.app.ActivityThread.main(ActivityThread.java:3835) 05-29 14:40:20.330: E/AndroidRuntime(15571): at java.lang.reflect.Method.invokeNative(Native Method) 05-29 14:40:20.330: E/AndroidRuntime(15571): at java.lang.reflect.Method.invoke(Method.java:507) 05-29 14:40:20.330: E/AndroidRuntime(15571): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847) 05-29 14:40:20.330: E/AndroidRuntime(15571): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605) 05-29 14:40:20.330: E/AndroidRuntime(15571): at dalvik.system.NativeStart.main(Native Method) 05-29 14:40:20.330: E/AndroidRuntime(15571): Caused by: java.lang.RuntimeException: Fail to connect to camera service 05-29 14:40:20.330: E/AndroidRuntime(15571): at android.hardware.Camera.native_setup(Native Method) 05-29 14:40:20.330: E/AndroidRuntime(15571): at android.hardware.Camera.<init>(Camera.java:258) 05-29 14:40:20.330: E/AndroidRuntime(15571): at android.hardware.Camera.open(Camera.java:235) 05-29 14:40:20.330: E/AndroidRuntime(15571): at com.achillessecurity.androidtestjni.AndroidTestJNIActivity.onCreate(AndroidTestJNIActivity.java:42) 05-29 14:40:20.330: E/AndroidRuntime(15571): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 05-29 14:40:20.330: E/AndroidRuntime(15571): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1722) 

Я инициализирую камеру: camera= Camera.open();

Используйте эти разрешения:

  <uses-permission android:name="android.permission.CAMERA" /> <uses-feature android:name="android.hardware.camera" /> 

И вы можете создать объект камеры с помощью этого

 Camera mycamera = Camera.open(); 

Вы можете попробовать описанный здесь метод очень прост, если вы входите в простоту:

http://developer.android.com/training/camera/photobasics.html

Android не может использовать камеру без предварительного просмотра … но вы можете установить размер предварительного просмотра как 1×1 px, тогда вы его не увидите, и вы можете использовать камеру в любом случае.

Что касается вашей ошибки Fail to initialize camera ошибки Fail to initialize camera , другая возможность заключается в том, что камера используется другим.

Intereting Posts
React Native: сбой запроса на выборку с ошибкой – TypeError: сбой сетевого запроса (…) Как мне перейти на бесплатное бесплатное приложение на Android-рынке? Фрагмент с несколькими стоп-кадрами Что происходит быстрее с помощью посланника или намерения? Как вы можете настроить мягкую клавиатуру EditText для использования номеров вначале, но все же разрешить текст? Работайте над ошибкой QString для мобильных устройств Возврат данных из AsyncTask без блокировки пользовательского интерфейса Как исправить исходный шрифт в Android Lollipop при работе с пользовательскими шрифтами значков? Gradle выполняет командные строки в пользовательской задаче Автоматическое увеличение кода версии в приложении для Android Android-клиент и клиент кэша кэш-диска с помощью Picasso Недопустимый package.json в пользовательском плагине corova Сдвиг повторного просмотра в последний элемент в списке Как добавить дополнение к растровому изображению и цвет в списке слоев Получение Picasso для предварительной печати предстоящих изображений