How can I open front camera using Intent in android?

后端 未结 3 1661
走了就别回头了
走了就别回头了 2020-12-02 00:22

I want to make a app in which I have to open only front camera, How can i do it using intent?

private void captureImage() {
    Intent intent =          


        
相关标签:
3条回答
  • 2020-12-02 00:31
    try this:
    
     Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
     intent.putExtra("android.intent.extras.CAMERA_FACING", 1);
                    File outPutFile = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + Util.SD_CARD_PATH);
                    if (!outPutFile.exists()) {
                        outPutFile.mkdirs();
                    }
                    capturedImageUri = Uri.fromFile(File.createTempFile("packagename" + System.currentTimeMillis(), ".jpg", outPutFile));
    
                    intent.putExtra(MediaStore.EXTRA_OUTPUT, capturedImageUri);
                    startActivityForResult(intent, Util.REQUEST_CAMERA);
    
    0 讨论(0)
  • 2020-12-02 00:52

    java

        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        Uri photoUri = Uri.fromFile(getOutputPhotoFile());
        intent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
        intent.putExtra("android.intent.extras.CAMERA_FACING", 1);
        startActivityForResult(intent, CAMERA_PHOTO_REQUEST_CODE);
    

    Other/Alternate Solution

    private Camera openFrontFacingCameraGingerbread() {
        int cameraCount = 0;
        Camera cam = null;
        Camera.CameraInfo cameraInfo = new Camera.CameraInfo();
        cameraCount = Camera.getNumberOfCameras();
        for (int camIdx = 0; camIdx < cameraCount; camIdx++) {
            Camera.getCameraInfo(camIdx, cameraInfo);
            if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
                try {
                    cam = Camera.open(camIdx);
                } catch (RuntimeException e) {
                    Log.e(TAG, "Camera failed to open: " + e.toString());
                }
            }
        }
    
        return cam;
    }
    

    add these permissions in the AndroidManifest.xml file

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

    only available in Gingerbread(2.3) and Up Android Version.

    otherwise you can also check these example

    1. android-Camera2Basic

    2. Camera Example 2

    3. Vogella example

    hope it helps you..

    0 讨论(0)
  • 2020-12-02 00:57

    Standard Android Camera

    Using Intent you open the standard android camera application.

    Never use android.intent.extras.CAMERA_FACING property - this is an undocumented feature that stopped working starting from some of the android versions.

    Camera API

    To open a front camera you should use Camera API - do things like choosing the front camera, showing a preview in a view, and taking pictures manually. Answer of @skydroid shows how to find the front camera. Note that Camera.open() doesn't open a camera for the user as you might expect, you should manually show the preview.

    Also note, since API level 21 the Camera API is deprecated and docs recommend to use Camera 2 API instead. But Camera API remains fully functional and you have no other choice if you want support older versions (< API level 21) as well.

    0 讨论(0)
提交回复
热议问题