Lingua

CameraManager.OpenCamera Metodo

Definizione

Overload

Nome Descrizione
OpenCamera(String, IExecutor, CameraDevice+StateCallback)

Aprire una connessione a una fotocamera con l'ID specificato.

OpenCamera(String, CameraDevice+StateCallback, Handler)

Aprire una connessione a una fotocamera con l'ID specificato.

OpenCamera(String, IExecutor, CameraDevice+StateCallback)

Aprire una connessione a una fotocamera con l'ID specificato.

[Android.Runtime.Register("openCamera", "(Ljava/lang/String;Ljava/util/concurrent/Executor;Landroid/hardware/camera2/CameraDevice$StateCallback;)V", "", ApiSince=28)]
[Android.Runtime.RequiresPermission("android.permission.CAMERA")]
public void OpenCamera(string cameraId, Java.Util.Concurrent.IExecutor executor, Android.Hardware.Camera2.CameraDevice.StateCallback callback);
[<Android.Runtime.Register("openCamera", "(Ljava/lang/String;Ljava/util/concurrent/Executor;Landroid/hardware/camera2/CameraDevice$StateCallback;)V", "", ApiSince=28)>]
[<Android.Runtime.RequiresPermission("android.permission.CAMERA")>]
member this.OpenCamera : string * Java.Util.Concurrent.IExecutor * Android.Hardware.Camera2.CameraDevice.StateCallback -> unit

Parametri

cameraId
String

Identificatore univoco del dispositivo fotocamera da aprire. Questo valore non può essere Null.

executor
IExecutor

Executor che verrà usato per richiamare il callback. Questo valore non può essere Null. Gli eventi di callback e listener vengono inviati tramite questo executor, offrendo un modo semplice per controllare il thread usato. Per inviare eventi tramite il thread principale dell'applicazione, è possibile usare Context.getMainExecutor(). In caso contrario, fornire un executor che invia a un thread appropriato.

callback
CameraDevice.StateCallback

Callback richiamato dopo l'apertura della fotocamera. Questo valore non può essere Null.

Attributi

Commenti

Aprire una connessione a una fotocamera con l'ID specificato.

Informazioni di riferimento su Android per android.hardware.camera2.CameraManager.openCamera.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Si applica a

OpenCamera(String, CameraDevice+StateCallback, Handler)

Aprire una connessione a una fotocamera con l'ID specificato.

[Android.Runtime.Register("openCamera", "(Ljava/lang/String;Landroid/hardware/camera2/CameraDevice$StateCallback;Landroid/os/Handler;)V", "")]
[Android.Runtime.RequiresPermission("android.permission.CAMERA")]
public void OpenCamera(string cameraId, Android.Hardware.Camera2.CameraDevice.StateCallback callback, Android.OS.Handler? handler);
[<Android.Runtime.Register("openCamera", "(Ljava/lang/String;Landroid/hardware/camera2/CameraDevice$StateCallback;Landroid/os/Handler;)V", "")>]
[<Android.Runtime.RequiresPermission("android.permission.CAMERA")>]
member this.OpenCamera : string * Android.Hardware.Camera2.CameraDevice.StateCallback * Android.OS.Handler -> unit

Parametri

cameraId
String

Identificatore univoco del dispositivo fotocamera da aprire

callback
CameraDevice.StateCallback

Callback richiamato dopo l'apertura della fotocamera

handler
Handler

Gestore in cui deve essere richiamato il callback o null per usare l'oggetto del Looperthread corrente.

Attributi

Eccezioni

se la fotocamera è disabilitata dai criteri del dispositivo, è stata disconnessa o viene usata da un client API della fotocamera con priorità più alta.

se cameraId o callback è null o il cameraId non corrisponde ad alcun dispositivo fotocamera attualmente o precedentemente disponibile.

se l'applicazione non dispone dell'autorizzazione per accedere alla fotocamera

Commenti

Aprire una connessione a una fotocamera con l'ID specificato.

Usare getCameraIdList() per ottenere l'elenco dei dispositivi fotocamera disponibili. Si noti che, anche se è elencato un ID, l'apertura potrebbe non riuscire se il dispositivo viene disconnesso tra le chiamate a getCameraIdList() e openCamera(String, StateCallback, Handler) o se un client API della fotocamera con priorità più alta inizia a usare il dispositivo fotocamera.

A partire dal livello API 23, i dispositivi per cui il callback AvailabilityCallback.onCameraUnavailable(String) è stato chiamato a causa del fatto che il dispositivo è in uso da un client API della fotocamera in background con priorità inferiore, può comunque essere aperto chiamando questo metodo quando il client API della fotocamera chiamante ha una priorità più alta rispetto al client API fotocamera corrente che usa questo dispositivo. In generale, se l'attività in primo piano è in esecuzione all'interno del processo dell'applicazione, al processo verrà assegnata la priorità più alta durante l'accesso alla fotocamera e questo metodo avrà esito positivo anche se il dispositivo fotocamera è in uso da un altro client API della fotocamera. Qualsiasi applicazione con priorità inferiore che perde il controllo della fotocamera in questo modo riceverà un callback CameraDevice.StateCallback.onDisconnected(CameraDevice). Aprendo lo stesso ID fotocamera due volte nella stessa applicazione, il callback CameraDevice.StateCallback.onDisconnected(CameraDevice) viene attivato per CameraDevice dalla prima chiamata aperta e tutte le attività in corso vengono eliminate.

Una volta aperta la fotocamera, CameraDevice.StateCallback.onOpened verrà richiamata con il dispositivo CameraDevice appena aperto. Il dispositivo fotocamera può quindi essere configurato per l'operazione chiamando CameraDevice.createCaptureSession e CameraDevice.createCaptureRequest

Prima del livello API 30, quando l'applicazione tenta di aprire più CameraDevice di ID diversi e il dispositivo non supporta l'apertura di tale combinazione, openCamera(String, StateCallback, Handler) avrà esito negativo e genererà un'eccezione CameraAccessException o una o più di cameraDevice già aperte e riceverà il callback CameraDevice.StateCallback.onDisconnected(CameraDevice). Il comportamento che si verificherà dipende dall'implementazione del dispositivo e può variare in dispositivi diversi. A partire dal livello API 30, se il dispositivo non supporta la combinazione di fotocamere aperte, è garantito che la chiamata openCamera(String, StateCallback, Handler) avrà esito negativo e nessuno dei dispositivi CameraDevice esistenti verrà disconnesso.

Poiché il dispositivo fotocamera verrà aperto in modo asincrono, tutte le operazioni asincrone eseguite nell'istanza di CameraDevice restituita verranno accodate fino al completamento dell'avvio del dispositivo e viene chiamato il metodo onOpened del callback. Le operazioni in sospeso vengono quindi elaborate in ordine.

Se la fotocamera viene disconnessa durante l'inizializzazione dopo la restituzione di questa chiamata di funzione, CameraDevice.StateCallback.onDisconnected con cameraDevice nello stato disconnesso (e CameraDevice.StateCallback.onOpened verrà ignorato).

Se l'apertura del dispositivo fotocamera ha esito negativo, verrà chiamato il metodo onError del callback del dispositivo e le chiamate successive sul dispositivo fotocamera genereranno un'eccezione CameraAccessException. Richiede Manifest.permission.CAMERA

Informazioni di riferimento su Android per android.hardware.camera2.CameraManager.openCamera.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Vedi anche

  • GetCameraIdList()
  • <xref:Android.App.Admin.DevicePolicyManager.SetCameraDisabled(Android.Content.ComponentName%2c+System.Boolean)>

Si applica a