web-dev-qa-db-fra.com

Accéder à une caméra USB à l'aide de l'API Android-Camera2

J'ai une caméra UVC qui souhaite accéder et saisir des images dans mon code Android Pie (Android 9)).

Voici le code que j'utilise pour énumérer les caméras connectées au téléphone Android:

    @Override
    public void onResume()
    {
        CameraManager manager =
                (CameraManager)getSystemService(CAMERA_SERVICE);
        try {
            for (String cameraId : manager.getCameraIdList()) {
                CameraCharacteristics chars
                        = manager.getCameraCharacteristics(cameraId);
                // Do something with the characteristics
                int deviceLevel = chars.get(CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL);
                Log.d(TAG, " **** device ["+cameraId+"] level:"+deviceLevel);
            }
        } catch(CameraAccessException e){
            e.printStackTrace();
        }
    }

Je sautais sur Android 9/Pie (Pixel 3) cela montre la caméra USB connectée. Mais seuls deux appareils sont répertoriés, les caméras avant et arrière et le téléphone.

Voici la liste des fonctionnalités et des autorisations dans mon fichier manifeste (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-permission Android:name="Android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission Android:name="Android.permission.RECORD_AUDIO" />
<uses-feature Android:name="Android.hardware.usb.Host" />

Je ne trouve aucun exemple de code sur Internet pour y parvenir, c'est-à-dire accéder à la caméra USB en utilisant sur Android 9 et versions ultérieures.

Que manque-t-il pour que mon code énumère la caméra USB? J'ai vu des bibliothèques UVC tierces pour Android, mais je ne les utilise pas et je veux utiliser le code Android Android.

5
alex papa

@alex papa, j'ai acheté un Samsung Galaxy S10e, j'ai essayé avec logitech c920, mais je n'ai pas obtenu d'ID de caméra externe. Pouvez-vous partager la webcam que vous utilisez? J'ai également packageManager.hasSystemFeature (PackageManager.FEATURE_CAMERA_EXTERNAL) renvoie false.

0
Yu He