CameraManager.OpenCamera Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Überlädt
| Name | Beschreibung |
|---|---|
| OpenCamera(String, IExecutor, CameraDevice+StateCallback) |
Öffnen Sie eine Verbindung mit einer Kamera mit der angegebenen ID. |
| OpenCamera(String, CameraDevice+StateCallback, Handler) |
Öffnen Sie eine Verbindung mit einer Kamera mit der angegebenen ID. |
OpenCamera(String, IExecutor, CameraDevice+StateCallback)
Öffnen Sie eine Verbindung mit einer Kamera mit der angegebenen ID.
[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
Parameter
- cameraId
- String
Der eindeutige Bezeichner des zu öffnenden Kamerageräts. Dieser Wert darf nicht NULL sein.
- executor
- IExecutor
Der Executor, der beim Aufrufen des Rückrufs verwendet wird. Dieser Wert darf nicht NULL sein. Callback- und Listenerereignisse werden über diesen Executor verteilt und bieten eine einfache Möglichkeit, zu steuern, welcher Thread verwendet wird. Um Ereignisse über den Hauptthread Ihrer Anwendung zu verteilen, können Sie Context.getMainExecutor() verwenden. Stellen Sie andernfalls einen Executor bereit, der an einen entsprechenden Thread verteilt wird.
- callback
- CameraDevice.StateCallback
Der Rückruf, der aufgerufen wird, nachdem die Kamera geöffnet wurde. Dieser Wert darf nicht NULL sein.
- Attribute
Hinweise
Öffnen Sie eine Verbindung mit einer Kamera mit der angegebenen ID.
Android-Referenz für android.hardware.camera2.CameraManager.openCamera.
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.
Gilt für:
OpenCamera(String, CameraDevice+StateCallback, Handler)
Öffnen Sie eine Verbindung mit einer Kamera mit der angegebenen ID.
[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
Parameter
- cameraId
- String
Der eindeutige Bezeichner des zu öffnenden Kamerageräts
- callback
- CameraDevice.StateCallback
Der Rückruf, der aufgerufen wird, nachdem die Kamera geöffnet wurde
- handler
- Handler
Der Handler, für den der Rückruf aufgerufen werden soll, oder null um den aktuellen Thread Looperzu verwenden.
- Attribute
Ausnahmen
wenn die Kamera von der Geräterichtlinie deaktiviert wurde, getrennt wurde oder von einem Kamera-API-Client mit höherer Priorität verwendet wird.
wenn "cameraId" oder "callback" null war oder die "cameraId" keinem aktuell oder zuvor verfügbaren Kameragerät entspricht.
wenn die Anwendung nicht über die Berechtigung zum Zugriff auf die Kamera verfügt
Hinweise
Öffnen Sie eine Verbindung mit einer Kamera mit der angegebenen ID.
Verwenden Sie getCameraIdList(), um die Liste der verfügbaren Kamerageräte abzurufen. Beachten Sie, dass auch dann, wenn eine ID aufgeführt ist, ein Fehler auftritt, wenn das Gerät zwischen den Aufrufen von getCameraIdList() und openCamera(String, StateCallback, Handler) getrennt wird oder ein Kamera-API-Client mit höherer Priorität mit der Verwendung des Kamerageräts beginnt.
Ab API-Ebene 23 können Geräte, für die der AvailabilityCallback.onCameraUnavailable(String)-Rückruf aufgerufen wurde, da das Gerät von einer niedrigeren Priorität verwendet wird, der Hintergrundkamera-API-Client weiterhin durch Aufrufen dieser Methode geöffnet werden kann, wenn der aufrufende Kamera-API-Client eine höhere Priorität hat als der aktuelle Kamera-API-Client, der dieses Gerät verwendet. Wenn die Vordergrundaktivität im Vordergrund in Ihrem Anwendungsprozess ausgeführt wird, erhält der Prozess beim Zugriff auf die Kamera die höchste Priorität, und diese Methode wird auch dann erfolgreich ausgeführt, wenn das Kameragerät von einem anderen Kamera-API-Client verwendet wird. Jede Anwendung mit niedrigerer Priorität, die die Kontrolle über die Kamera auf diese Weise verliert, erhält einen CameraDevice.StateCallback.onDisconnected(CameraDevice)-Rückruf. Wenn Sie dieselbe Kamera-ID zweimal in derselben Anwendung öffnen, wird der Callback "CameraDevice.StateCallback.onDisconnected(CameraDevice)" für "CameraDevice" aus dem ersten geöffneten Anruf ausgelöst, und alle laufenden Aufgaben werden gelöscht.
Sobald die Kamera erfolgreich geöffnet wurde, wird CameraDevice.StateCallback.onOpened mit dem neu geöffneten CameraDevice aufgerufen. Das Kameragerät kann dann für den Betrieb eingerichtet werden, indem "CameraDevice.createCaptureSession" und "CameraDevice.createCaptureRequest" aufgerufen werden.
Vor API-Ebene 30, wenn die Anwendung versucht, mehrere CameraDevice verschiedener IDs zu öffnen, und das Gerät unterstützt das Öffnen dieser Kombination nicht, entweder die openCamera(String, StateCallback, Handler) fehlschlägt und eine CameraAccessException oder mindestens eine der bereits geöffneten CameraDevice wird getrennt und empfangen CameraDevice.StateCallback.onDisconnected(CameraDevice)-Rückruf. Welches Verhalten auftritt, hängt von der Geräteimplementierung ab und kann auf verschiedenen Geräten variieren. Ab API-Ebene 30 schlägt der OpenCamera(String,StateCallback, Handler)-Aufruf fehl, wenn das Gerät die Kombination von Kameras, die geöffnet werden, nicht unterstützt, und keines der vorhandenen CameraDevice wird getrennt.
Da das Kameragerät asynchron geöffnet wird, werden alle asynchronen Vorgänge, die für die zurückgegebene CameraDevice-Instanz ausgeführt werden, bis der Gerätestart abgeschlossen ist und die onOpened-Methode aufgerufen wird. Die ausstehenden Vorgänge werden dann in der Reihenfolge verarbeitet.
Wenn die Kamera während der Initialisierung getrennt wird, nachdem dieser Funktionsaufruf zurückgegeben wurde, wird CameraDevice.StateCallback.onDisconnected mit einer CameraDevice im getrennten Zustand verbunden (und CameraDevice.StateCallback.onOpened wird übersprungen).
Wenn das Öffnen des Kamerageräts fehlschlägt, wird die onError-Methode des Geräterückrufs aufgerufen, und nachfolgende Aufrufe auf dem Kameragerät lösen eine CameraAccessException aus. Erfordert Manifest.permission.CAMERA
Android-Referenz für android.hardware.camera2.CameraManager.openCamera.
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.
Siehe auch
- GetCameraIdList()
- <xref:Android.App.Admin.DevicePolicyManager.SetCameraDisabled(Android.Content.ComponentName%2c+System.Boolean)>