Skip to content

🐛 The camera won't open on my android device #3474

@AndreBarroso

Description

@AndreBarroso

What's happening?

I've tried it on two devices, but when I click on 'Open camera', the phone's camera doesn't open.
I tested it on Android versions 9 and 11.
The hasPermission and requestPermission hooks work.

"react-native": "0.78.1",
"react-native-vision-camera": "^4.6.4",

Reproduceable Code

import React, {useEffect, useState} from 'react'
import {View, Button, Text} from 'react-native'
import {Camera, useCameraDevice, useCameraPermission} from 'react-native-vision-camera'

import {MainLayout} from '@/layouts/MainLayout'

export function CameraScreen() {
  const [cameraVisible, setCameraVisible] = useState(false)
  const device = useCameraDevice('back')
  const {hasPermission, requestPermission} = useCameraPermission()

  useEffect(() => {
    if (!hasPermission) {
      requestPermission()
    }
  }, [hasPermission])

  if (!hasPermission) {
    return (
      <MainLayout>
        <View>
          <Text>Camera permission required</Text>
          <Button title="Grant Permission" onPress={requestPermission} />
        </View>
      </MainLayout>
    )
  }

  if (!device) {
    return (
      <MainLayout>
        <View>
          <Text>No camera available</Text>
        </View>
      </MainLayout>
    )
  }

  return (
    <MainLayout>
      <View>
        <View style={{marginBottom: 20}}>
          <Button title="Open camera" onPress={() => setCameraVisible(true)} />
        </View>
        <Button title="Close camera" onPress={() => setCameraVisible(false)} />
        {cameraVisible && <Camera device={device} isActive={true} />}
      </View>
    </MainLayout>
  )
}
---------------------------------------------------------------
/*
I added the items below to the AndroidManifest.xml:

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

*/

Relevant log output

.

Camera Device

{
    "hardwareLevel": "full",
    "minExposure": -4,
    "neutralZoom": 1,
    "minZoom": 1,
    "supportsFocus": true,
    "isMultiCam": false,
    "position": "back",
    "id": "0",
    "hasFlash": true,
    "maxExposure": 4,
    "name": "0 (BACK) androidx.camera.camera2"
}

Device

moto e6s

VisionCamera Version

4.6.4

Can you reproduce this issue in the VisionCamera Example app?

I didn't try (⚠️ your issue might get ignored & closed if you don't try this)

Additional information

Metadata

Metadata

Assignees

No one assigned

    Labels

    🐛 bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions