CameraManager.OpenCamera Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Sobrecargas
| Nome | Description |
|---|---|
| OpenCamera(String, IExecutor, CameraDevice+StateCallback) |
Abra uma conexão com uma câmera com a ID fornecida. |
| OpenCamera(String, CameraDevice+StateCallback, Handler) |
Abra uma conexão com uma câmera com a ID fornecida. |
OpenCamera(String, IExecutor, CameraDevice+StateCallback)
Abra uma conexão com uma câmera com a ID fornecida.
[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
Parâmetros
- cameraId
- String
O identificador exclusivo do dispositivo de câmera a ser aberto. Esse valor não pode ser nulo.
- executor
- IExecutor
O executor que será usado ao invocar o retorno de chamada. Esse valor não pode ser nulo. Os eventos de retorno de chamada e ouvinte são expedidos por meio desse Executor, fornecendo uma maneira fácil de controlar qual thread é usado. Para expedir eventos por meio do thread principal do aplicativo, você pode usar Context.getMainExecutor(). Caso contrário, forneça um Executor que seja enviado para um thread apropriado.
- callback
- CameraDevice.StateCallback
O retorno de chamada que é invocado quando a câmera é aberta. Esse valor não pode ser nulo.
- Atributos
Comentários
Abra uma conexão com uma câmera com a ID fornecida.
Referência do Android para android.hardware.camera2.CameraManager.openCamera.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.
Aplica-se a
OpenCamera(String, CameraDevice+StateCallback, Handler)
Abra uma conexão com uma câmera com a ID fornecida.
[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
Parâmetros
- cameraId
- String
O identificador exclusivo do dispositivo de câmera a ser aberto
- callback
- CameraDevice.StateCallback
O retorno de chamada que é invocado quando a câmera é aberta
- handler
- Handler
O manipulador no qual o retorno de chamada deve ser invocado ou null para usar o thread Looperatual.
- Atributos
Exceções
se a câmera estiver desabilitada pela política do dispositivo, tiver sido desconectada ou estiver sendo usada por um cliente de API de câmera de prioridade mais alta.
se cameraId ou o retorno de chamada for nulo ou se a cameraId não corresponder a nenhum dispositivo de câmera atual ou anteriormente disponível.
se o aplicativo não tiver permissão para acessar a câmera
Comentários
Abra uma conexão com uma câmera com a ID fornecida.
Use getCameraIdList() para obter a lista de dispositivos de câmera disponíveis. Observe que, mesmo que uma ID esteja listada, o open poderá falhar se o dispositivo estiver desconectado entre as chamadas para getCameraIdList() e openCamera(String, StateCallback, Handler) ou se um cliente de API de câmera de prioridade mais alta começar a usar o dispositivo de câmera.
A partir do nível de API 23, os dispositivos para os quais o retorno de chamada AvailabilityCallback.onCameraUnavailable(String) foi chamado devido ao dispositivo estar em uso por um cliente de API de câmera de segundo plano de menor prioridade ainda podem ser abertos chamando esse método quando o cliente de API da câmera de chamada tem uma prioridade maior do que o cliente de API da câmera atual usando esse dispositivo. Em geral, se a atividade de primeiro plano superior estiver em execução no processo do aplicativo, o processo receberá a prioridade mais alta ao acessar a câmera, e esse método terá êxito mesmo se o dispositivo de câmera estiver em uso por outro cliente de API de câmera. Qualquer aplicativo de prioridade inferior que perca o controle da câmera dessa forma receberá um retorno de chamada CameraDevice.StateCallback.onDisconnected(CameraDevice). Abrir a mesma ID da câmera duas vezes no mesmo aplicativo fará com que o retorno de chamada CameraDevice.StateCallback.onDisconnected(CameraDevice) seja disparado para o CameraDevice da primeira chamada aberta e todas as tarefas em andamento sejam descartadas.
Depois que a câmera for aberta com êxito, CameraDevice.StateCallback.onOpened será invocado com o CameraDevice recém-aberto. O dispositivo de câmera pode ser configurado para operação chamando CameraDevice.createCaptureSession e CameraDevice.createCaptureRequest
Antes do nível de API 30, quando o aplicativo tenta abrir várias CameraDevice de diferentes IDs e o dispositivo não dá suporte à abertura dessa combinação, o openCamera(String, StateCallback, Handler) falhará e lançará um CameraAccessException ou um ou mais dos CameraDevice já abertos serão desconectados e receberão o retorno de chamada CameraDevice.StateCallback.onDisconnected(CameraDevice). Qual comportamento ocorrerá depende da implementação do dispositivo e pode variar em dispositivos diferentes. A partir do nível 30 da API, se o dispositivo não der suporte à combinação de câmeras que está sendo aberta, é garantido que a chamada openCamera(String, StateCallback, Handler) falhará e nenhum cameraDevice existente será desconectado.
Como o dispositivo de câmera será aberto de forma assíncrona, todas as operações assíncronas feitas na instância do CameraDevice retornada serão enfileiradas até que a inicialização do dispositivo seja concluída e o método onOpened do retorno de chamada seja chamado. As operações pendentes são processadas em ordem.
Se a câmera ficar desconectada durante a inicialização após essa chamada de função retornar, CameraDevice.StateCallback.onDisconnected com um CameraDevice no estado desconectado (e CameraDevice.StateCallback.onOpened será ignorado).
Se a abertura do dispositivo de câmera falhar, o método onError do retorno de chamada do dispositivo será chamado e chamadas subsequentes no dispositivo de câmera lançarão uma CameraAccessException. Requer Manifest.permission.CAMERA
Referência do Android para android.hardware.camera2.CameraManager.openCamera.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.
Confira também
- GetCameraIdList()
- <xref:Android.App.Admin.DevicePolicyManager.SetCameraDisabled(Android.Content.ComponentName%2c+System.Boolean)>