AppOpsManager Classe
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.
As operações de aplicativo são usadas para duas finalidades: controle de acesso e acompanhamento.
[Android.Runtime.Register("android/app/AppOpsManager", DoNotGenerateAcw=true)]
public class AppOpsManager : Java.Lang.Object
[<Android.Runtime.Register("android/app/AppOpsManager", DoNotGenerateAcw=true)>]
type AppOpsManager = class
inherit Object
- Herança
- Atributos
Comentários
As operações de aplicativo são usadas para duas finalidades: controle de acesso e acompanhamento. As operações de aplicativo abrangem uma ampla variedade de funcionalidades, desde ajudar com permissões de runtime, controle de acesso e acompanhamento até o acompanhamento do consumo de bateria. As operações de controle de acesso podem ser controladas para cada uid ou para cada pacote. Qual deles é usado depende do provedor de API que mantém essa operação de aplicativo. Para qualquer operação de aplicativo relacionada à segurança ou privacidade, o provedor precisa controlar o app-op por uid, pois toda segurança e privacidade é baseada em uid no Android. Para controlar o acesso, o app-op pode ser definido como um modo para: MODE_DEFAULT Comportamento padrão, pode ser diferente do app-op ou app-op MODE_ALLOWED Permitir o acesso MODE_IGNORED Não permitir o acesso, ou seja, não executar a ação solicitada ou retornar dados de não ou espaço reservado MODE_ERRORED Lançar um SecurityException no acesso. Isso pode ser suprimido usando um... método noThrow para verificar o modo que os provedores de API precisam verificar o modo retornado por noteOp(String, int, String) se eles estiverem permitindo o acesso às operações fechadas pelo app-op. unsafeCheckOp(String, int, String) deve ser usado para verificar o modo se nenhum acesso é concedido. Por exemplo, isso pode ser usado para exibir o estado app-op na interface do usuário ou ao verificar o estado antes de chamar noteOp(String, int, String) de qualquer maneira. Se uma operação se referir a um intervalo de tempo (por exemplo, uma sessão de gravação de áudio), o provedor de API deverá usar startOp(String, int, String) e finishOp(String, int, String) em vez de noteOp(String, int, String). Permissões de runtime e operações de aplicativo Cada permissão de runtime definida pela plataforma (ao lado de modificadores em segundo plano) tem uma operação de aplicativo associada que é usada para acompanhamento, mas também para permitir falhas silenciosas. Ou seja, se a permissão de runtime for negada, o chamador obterá uma SecurityException, mas se a permissão for concedida e a operação de aplicativo for MODE_IGNORED os chamadores obterão o comportamento de espaço reservado, por exemplo, retornos de chamada de localização não ocorrerão. Permissões app-op permissões App-ops são permissões definidas pela plataforma que podem ser substituídas. A verificação de segurança para permissões de app-op deve, por padrão, verificar o estado de concessão de permissão. Se o estado app-op estiver definido como MODE_ALLOWED ou MODE_IGNORED o estado de operação do aplicativo deverá ser verificado em vez do estado de concessão de permissão. Essa funcionalidade permite conceder acesso por padrão aos aplicativos que cumprem os requisitos para um determinado nível de permissão. Ainda assim, o comportamento pode ser substituído quando necessário. O acompanhamento de operações de aplicativo acompanha muitos eventos importantes, incluindo todos os acessos a APIs protegidas por permissão de runtime. Isso é feito acompanhando quando uma operação de aplicativo foi anotada ou iniciada. Os dados rastreados só podem ser lidos por componentes do sistema. Somente noteOp(String, int, String)/startOp(String, int, String) são acompanhados; unsafeCheckOp(String, int, String) não é rastreado. Portanto, é importante eventualmente chamar noteOp(String, int, String) ou startOp(String, int, String) ao fornecer acesso a operações ou dados protegidos. Alguns aplicativos estão encaminhando acesso a outros aplicativos. Por exemplo, um aplicativo pode obter o local do provedor de localização do sistema e, em seguida, enviar o local para um terceiro aplicativo. Nesse caso, o aplicativo que passa os dados precisa chamar noteProxyOp(String, String) para sinalizar o proxy de acesso. Isso também poderá fazer sentido dentro de um único aplicativo se o acesso for encaminhado entre duas partes da marca com marcas de atribuição diferentes. Um aplicativo pode registrar um OnOpNotedCallback para ser informado sobre quais acessos o sistema está acompanhando. Como cada permissão de runtime tem uma operação de aplicativo associada, essa API é particularmente útil para um aplicativo que deseja encontrar acessos inesperados a dados privados.
Referência do Android para android.app.AppOpsManager.
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.
Construtores
| Nome | Description |
|---|---|
| AppOpsManager(IntPtr, JniHandleOwnership) |
Inicializa uma representação gerenciada de um objeto de interface nativa Java existente. |
Campos
| Nome | Description |
|---|---|
| ModeAllowed |
Obsoleto.
Resultado de checkOp(String, int, String), noteOp(String, int, String), startOp(String, int, String): o chamador especificado tem permissão para executar a operação fornecida. |
| ModeDefault |
Obsoleto.
Resultado de checkOp(String, int, String), noteOp(String, int, String), startOp(String, int, String): o chamador especificado deve usar sua verificação de segurança padrão. |
| ModeErrored |
Obsoleto.
Resultado de checkOpNoThrow(String, int, String), noteOpNoThrow(String, int, String), startOpNoThrow(String, int, String): o chamador especificado não tem permissão para executar a operação determinada e essa tentativa deve fazer com que ele tenha um erro fatal, normalmente um SecurityException. |
| ModeForeground |
Obsoleto.
Modo especial que significa "permitir somente quando o aplicativo estiver em primeiro plano". Isso não é retornado de unsafeCheckOp(String, int, String), noteOp(String, int, String), startOp(String, int, String). |
| ModeIgnored |
Obsoleto.
Resultado de checkOp(String, int, String), noteOp(String, int, String), startOp(String, int, String): o chamador especificado não tem permissão para executar a operação determinada e essa tentativa deve falhar silenciosamente (não deve causar falha no aplicativo). |
| OpNotedCallbackFlagIgnoreAsync |
Obsoleto.
Ignora os eventos anotados da operação assíncrona. |
| OpstrAddVoicemail |
Necessário para acessar informações relacionadas ao estado do telefone. |
| OpstrAnswerPhoneCalls |
Atender chamadas telefônicas de entrada |
| OpstrBodySensors |
Acesso a sensores do corpo, como freqüência cardíaca, etc. |
| OpstrCallPhone |
Permite que um aplicativo inicie uma chamada telefônica. |
| OpstrCamera |
Necessário para poder acessar o dispositivo de câmera. |
| OpstrCoarseLocation |
Acesso a informações de localização grosseiras. |
| OpstrFineLocation |
Acesso a informações de localização finas. |
| OpstrGetUsageStats |
Acesso ao UsageStatsManager. |
| OpstrMockLocation |
Injete a localização simulada no sistema. |
| OpstrMonitorHighPowerLocation |
Monitorando continuamente os dados de localização com uma solicitação de energia relativamente alta. |
| OpstrMonitorLocation |
Monitorando continuamente os dados de localização. |
| OpstrPictureInPicture |
Acesso à imagem na imagem. |
| OpstrProcessOutgoingCalls |
APIs de acesso para desviar chamadas de saída |
| OpstrReadCalendar |
Permite que um aplicativo leia os dados do calendário do usuário. |
| OpstrReadCallLog |
Permite que um aplicativo leia o log de chamadas do usuário. |
| OpstrReadCellBroadcasts |
Ler mensagens de transmissão de célula recebidas anteriormente. |
| OpstrReadContacts |
Permite que um aplicativo leia os dados de contatos do usuário. |
| OpstrReadExternalStorage |
Leia o armazenamento externo. |
| OpstrReadPhoneNumbers |
Valor constante: "android:read_phone_numbers" |
| OpstrReadPhoneState |
Necessário para acessar informações relacionadas ao estado do telefone. |
| OpstrReadSms |
Permite que um aplicativo leia mensagens SMS. |
| OpstrReceiveMms |
Permite que um aplicativo receba mensagens MMS. |
| OpstrReceiveSms |
Permite que um aplicativo receba mensagens SMS. |
| OpstrReceiveWapPush |
Permite que um aplicativo receba mensagens de push WAP. |
| OpstrRecordAudio |
Necessário para poder acessar o dispositivo de microfone. |
| OpstrSendSms |
Permite que um aplicativo envie mensagens SMS. |
| OpstrSystemAlertWindow |
Necessário para desenhar em cima de outros aplicativos. |
| OpstrUseFingerprint |
Use a API de impressão digital. |
| OpstrUseSip |
ApIs de acesso para chamada SIP por VOIP ou WiFi |
| OpstrWriteCalendar |
Permite que um aplicativo escreva nos dados do calendário do usuário. |
| OpstrWriteCallLog |
Permite que um aplicativo escreva no log de chamadas do usuário. |
| OpstrWriteContacts |
Permite que um aplicativo escreva nos dados de contatos do usuário. |
| OpstrWriteExternalStorage |
Gravar armazenamento externo. |
| OpstrWriteSettings |
Necessário para gravar/modificar/atualizar as configurações do sistema. |
| WatchForegroundChanges |
Obsoleto.
Sinalizador para startWatchingMode(String, String,int,OnOpChangedListener): também obtenha relatórios se o estado de primeiro plano da uid de uma operação for alterado. |
Propriedades
| Nome | Description |
|---|---|
| Class |
Retorna a classe de runtime deste |
| Handle |
O identificador para a instância subjacente do Android. (Herdado de Object) |
| JniIdentityHashCode |
Obtém o código de hash de identidade atribuído a esse par Java pelo runtime de interoperabilidade. (Herdado de Object) |
| JniManagedPeerState |
As operações de aplicativo são usadas para duas finalidades: controle de acesso e acompanhamento. (Herdado de JavaObject) |
| JniPeerMembers |
Fornece infraestrutura de associação JNI para Android.App.AppOpsManager. |
| PeerReference |
Obtém a referência de objeto JNI para este par Java. (Herdado de Object) |
| ThresholdClass |
Fornece infraestrutura de associação JNI para Android.App.AppOpsManager. |
| ThresholdType |
Fornece infraestrutura de associação JNI para Android.App.AppOpsManager. |
Métodos
| Nome | Description |
|---|---|
| CheckOp(String, Int32, String, String) |
Verifique se um aplicativo pode executar uma operação. |
| CheckOp(String, Int32, String) |
Verifique se um aplicativo pode executar uma operação. |
| CheckOpNoThrow(String, Int32, String, String) |
Como checkOp(String, int, String,String), mas em vez de lançar um SecurityException, ele retorna MODE_ERRORED. |
| CheckOpNoThrow(String, Int32, String) |
Como checkOp(String, int,String), mas em vez de lançar um SecurityException, ele retorna MODE_ERRORED. |
| CheckOpRawNoThrow(String, Int32, String, String) |
Como checkOp(String, int, String, String), mas retorna o modo bruto associado à operação. |
| CheckPackage(Int32, String) |
Esse método foi preterido no nível 30 da API. |
| Clone() |
Cria e retorna uma cópia desse objeto. (Herdado de Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
As operações de aplicativo são usadas para duas finalidades: controle de acesso e acompanhamento. (Herdado de JavaObject) |
| Dispose() |
Libera os recursos mantidos por esse par Java. (Herdado de Object) |
| Dispose(Boolean) |
Libera os recursos mantidos por esse par Java. (Herdado de Object) |
| DisposeUnlessReferenced() |
As operações de aplicativo são usadas para duas finalidades: controle de acesso e acompanhamento. (Herdado de JavaObject) |
| Equals(Object) |
As operações de aplicativo são usadas para duas finalidades: controle de acesso e acompanhamento. (Herdado de JavaObject) |
| Equals(Object) |
Indica se algum outro objeto é "igual a" este. (Herdado de Object) |
| FinishOp(String, Int32, String, String) |
Informe que um aplicativo não está mais executando uma operação que já havia sido iniciada com startOp(String, int, String, String,String). |
| FinishOp(String, Int32, String) |
Esse método foi preterido no nível 30 da API. |
| FinishProxyOp(String, Int32, String, String) |
Informe que um aplicativo não está mais executando uma operação que já havia sido iniciada com startProxyOp(String, int, String, String, String). |
| GetHashCode() |
Retorna um valor de código hash para o objeto. (Herdado de Object) |
| IsOpActive(String, Int32, String) |
Verifica se a operação fornecida para um pacote está ativa, ou seja, |
| JavaFinalize() |
Chamado pelo coletor de lixo em um objeto quando a coleta de lixo determina que não há mais referências ao objeto. (Herdado de Object) |
| NoteOp(String, Int32, String, String, String) |
Anote um aplicativo executando uma operação e verifique se o aplicativo tem permissão para executá-la. |
| NoteOp(String, Int32, String) |
Esse método foi preterido no nível 30 da API. |
| NoteOpNoThrow(String, Int32, String, String, String) |
Como noteOp(String, int, String, String, String), mas em vez de lançar um SecurityException, ele retorna MODE_ERRORED. |
| NoteOpNoThrow(String, Int32, String) |
Esse método foi preterido no nível 30 da API. |
| NoteProxyOp(String, String, Int32, String, String) |
Anote um aplicativo executando uma operação em nome de outro aplicativo ao manipular um IPC. |
| NoteProxyOp(String, String) |
Esse método foi preterido no nível 30 da API. |
| NoteProxyOpNoThrow(String, String, Int32, String, String) |
Como noteProxyOp(String, String, int,String,String), mas em vez de lançar um SecurityException, ele retorna MODE_ERRORED. |
| NoteProxyOpNoThrow(String, String, Int32) |
Esse método foi preterido no nível 30 da API. |
| NoteProxyOpNoThrow(String, String) |
Esse método foi preterido no nível 30 da API. |
| Notify() |
Ativa um único thread que está aguardando no monitor deste objeto. (Herdado de Object) |
| NotifyAll() |
Ativa todos os threads que estão aguardando no monitor deste objeto. (Herdado de Object) |
| PermissionToOp(String) |
Obtém o nome da operação de aplicativo associado a uma determinada permissão. |
| SetHandle(IntPtr, JniHandleOwnership) |
Define a propriedade Handle (Herdado de Object) |
| SetOnOpNotedCallback(IExecutor, AppOpsManager+OnOpNotedCallback, AppOpsManagerCallbackFlag) |
Defina um novo OnOpNotedCallback. |
| SetOnOpNotedCallback(IExecutor, AppOpsManager+OnOpNotedCallback) |
Defina um novo OnOpNotedCallback. |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
As operações de aplicativo são usadas para duas finalidades: controle de acesso e acompanhamento. (Herdado de JavaObject) |
| StartOp(String, Int32, String, String, String) |
Informe que um aplicativo começou a executar uma operação de execução prolongada. |
| StartOp(String, Int32, String) |
Esse método foi preterido no nível 30 da API. |
| StartOpNoThrow(String, Int32, String, String, String) |
Como startOp(String, int, String, String, String), mas em vez de lançar um SecurityException, ele retorna MODE_ERRORED. |
| StartOpNoThrow(String, Int32, String) |
Esse método foi preterido no nível 30 da API. |
| StartProxyOp(String, Int32, String, String, String) |
Informe que um aplicativo começou a executar uma operação de execução prolongada em nome de outro aplicativo ao lidar com um IPC. |
| StartProxyOpNoThrow(String, Int32, String, String, String) |
Como startProxyOp(String, int, String, String, String), mas em vez de lançar um SecurityException, ele retorna MODE_ERRORED. |
| StartWatchingActive(String[], IExecutor, AppOpsManager+IOnOpActiveChangedListener) |
Comece a observar as alterações no estado ativo das operações de aplicativo. |
| StartWatchingMode(String, String, AppOpsManager+IOnOpChangedListener) |
Monitore as alterações no modo operacional da operação fornecida no pacote de aplicativo fornecido. |
| StartWatchingMode(String, String, WatchForeground, AppOpsManager+IOnOpChangedListener) |
Monitore as alterações no modo operacional da operação fornecida no pacote de aplicativo fornecido. |
| StopWatchingActive(AppOpsManager+IOnOpActiveChangedListener) |
Pare de observar as alterações no estado ativo de uma operação de aplicativo. |
| StopWatchingMode(AppOpsManager+IOnOpChangedListener) |
Pare o monitoramento que foi iniciado anteriormente com startWatchingMode(String, String, OnOpChangedListener). |
| ToArray<T>() |
Cria uma matriz gerenciada com base nesse wrapper de matriz Java. (Herdado de Object) |
| ToString() |
Retorna uma representação de cadeia de caracteres do objeto. (Herdado de Object) |
| UnregisterFromRuntime() |
Cancela o registro desse par Java do runtime de interoperabilidade. (Herdado de Object) |
| UnsafeCheckOp(String, Int32, String) |
Esse método foi preterido no nível 36 da API. |
| UnsafeCheckOpNoThrow(String, Int32, String) |
Esse método foi preterido no nível 36 da API. |
| UnsafeCheckOpRaw(String, Int32, String) |
Esse método foi preterido no nível 36 da API. |
| UnsafeCheckOpRawNoThrow(String, Int32, String) |
Esse método foi preterido no nível 36 da API. |
| Wait() |
Faz com que o thread atual aguarde até ser despertado, normalmente por ser <notificado/em> ou <em>interrompido</em>.<> (Herdado de Object) |
| Wait(Int64, Int32) |
Faz com que o thread atual aguarde até que ele seja despertado, normalmente por ser <>notificado</em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido. (Herdado de Object) |
| Wait(Int64) |
Faz com que o thread atual aguarde até que ele seja despertado, normalmente por ser <>notificado</em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido. (Herdado de Object) |
Implantações explícitas de interface
| Nome | Description |
|---|---|
| IJavaPeerable.Disposed() |
As operações de aplicativo são usadas para duas finalidades: controle de acesso e acompanhamento. (Herdado de JavaObject) |
| IJavaPeerable.Finalized() |
As operações de aplicativo são usadas para duas finalidades: controle de acesso e acompanhamento. (Herdado de JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
As operações de aplicativo são usadas para duas finalidades: controle de acesso e acompanhamento. (Herdado de JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
As operações de aplicativo são usadas para duas finalidades: controle de acesso e acompanhamento. (Herdado de JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
As operações de aplicativo são usadas para duas finalidades: controle de acesso e acompanhamento. (Herdado de JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
As operações de aplicativo são usadas para duas finalidades: controle de acesso e acompanhamento. (Herdado de JavaObject) |
Métodos de Extensão
| Nome | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Obtém o nome JNI do tipo da instância |
| JavaAs<TResult>(IJavaPeerable) |
Tente coagir a digitar |
| JavaCast<TResult>(IJavaObject) |
Executa uma conversão de tipo marcada por runtime do Android. |
| JavaCast<TResult>(IJavaObject) |
As operações de aplicativo são usadas para duas finalidades: controle de acesso e acompanhamento. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Tente coagir a digitar |