CameraManager.OpenCamera Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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)>