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.
Os aplicativos são usados para duas finalidades: controle de acesso e rastreamento.
[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
Os aplicativos são usados para duas finalidades: controle de acesso e rastreamento.
As operações de aplicativos abrangem uma ampla variedade de funcionalidades, desde ajudar com permissões de tempo de execução, controle de acesso e rastreamento até o rastreamento do consumo de bateria.
<h2>Controle de< acesso/h2>
As operações de aplicativos podem ser controladas para cada uid ou para cada pacote. Qual deles é usado depende do provedor de API que mantém esse aplicativo-op. Para qualquer aplicativo de segurança ou privacidade relacionado, o provedor precisa controlar o app-op por uid, pois toda a segurança e privacidade é baseada no uid no Android.
Para controlar o acesso, o app-op pode ser definido para um modo para: <dl><dt><#MODE_DEFAULT
dd>Comportamento padrão, pode diferir de app-op ou app-op <dt<#MODE_ALLOWED
>dd>Permitir o acesso <dt#MODE_IGNORED
><dd>Não permitir o acesso, ou seja, não executar a ação solicitada ou retornar dados <de espaço reservado dt#MODE_ERRORED
<>dd>Lançar um SecurityException
no acesso. Isso pode ser suprimido usando um ...noThrow
método para verificar o modo </dl>
Os provedores de API precisam verificar o modo retornado por #noteOp
se estão permitindo acesso a operações fechadas pelo aplicativo-op. #unsafeCheckOp
deve ser usado para verificar o modo se nenhum acesso for concedido. Por exemplo, isso pode ser usado para exibir o estado de operação do aplicativo na interface do usuário ou ao verificar o estado antes de chamar #noteOp
mais tarde.
Se uma operação se referir a um período de tempo (por exemplo, uma sessão de gravação de áudio), o provedor de API deve usar #startOp
e #finishOp
em vez de #noteOp
.
<h3>Permissões de tempo de execução e app-ops</h3>
Cada permissão de tempo de execução definida pela plataforma (ao lado de modificadores em segundo plano) tem uma operação de aplicativo associada que é usada para rastreamento, mas também para permitir falhas silenciosas. Ou seja, se a permissão de tempo de execução for negada, o chamador obterá um SecurityException
, mas se a permissão for concedida e o aplicativo for #MODE_IGNORED
usado, os chamadores obterão um comportamento de espaço reservado, por exemplo, retornos de chamada de localização não aconteceriam.
<h3>Permissões< de aplicação/h3>
As permissões de operações de aplicativos são permissões definidas pela plataforma que podem ser substituídas. A verificação de segurança para permissões de aplicativo deve #MODE_DEFAULT default
verificar o estado de concessão de permissão. Se o estado de operação de aplicativo estiver definido como #MODE_ALLOWED
ou #MODE_IGNORED
o estado de operação de aplicativo deve ser verificado em vez do estado de concessão de permissão.
Essa funcionalidade permite conceder acesso por padrão a aplicativos que preencham os requisitos para um determinado nível de permissão. Ainda assim, o comportamento pode ser substituído quando necessário.
<h2>Rastreamento</h2>
As operações de aplicativos rastreiam muitos eventos importantes, incluindo todos os acessos a APIs protegidas por permissão de tempo de execução. Isso é feito rastreando quando um aplicativo foi #noteOp noted
ou #startOp started
. Os dados rastreados só podem ser lidos por componentes do sistema.
<b>Somente #noteOp
/#startOp
são rastreados, #unsafeCheckOp
não são rastreados. Por isso, é importante eventualmente ligar #noteOp
ou #startOp
ao fornecer acesso a operações ou dados protegidos.</b>
Alguns aplicativos estão encaminhando o acesso a outros aplicativos. Por exemplo, um aplicativo pode obter a localização do provedor de localização do sistema e, em seguida, enviar a localização para um 3º aplicativo. Nesse caso, o aplicativo que passa os dados precisa ligar #noteProxyOp
para sinalizar o proxy de acesso. Isso também pode fazer sentido dentro de um único aplicativo se o acesso for encaminhado entre duas partes da marcada com marcas de atribuição diferentes.
Um aplicativo pode se cadastrar para OnOpNotedCallback
se informar sobre quais acessos o sistema está rastreando para ele. Como cada permissão de tempo de execução tem um aplicativo operacional associado, essa API é particularmente útil para um aplicativo que deseja encontrar acessos inesperados a dados privados.
Documentação Java para android.app.AppOpsManager
.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.
Construtores
AppOpsManager(IntPtr, JniHandleOwnership) |
Um construtor usado ao criar representações gerenciadas de objetos JNI; chamado pelo tempo de execução. |
Campos
ModeAllowed |
Obsoleto.
Resultado de |
ModeDefault |
Obsoleto.
Resultado de , |
ModeErrored |
Obsoleto.
Resultado de |
ModeForeground |
Obsoleto.
Modo especial que significa "permitir apenas quando o aplicativo está em primeiro plano. |
ModeIgnored |
Obsoleto.
Resultado de |
OpstrAddVoicemail |
Necessário para acessar informações relacionadas ao estado do telefone. |
OpstrAnswerPhoneCalls |
Atender chamadas telefônicas recebidas |
OpstrBodySensors |
Acesso a sensores corporais, como frequência cardíaca, etc. |
OpstrCallPhone |
Permite que um aplicativo inicie uma chamada telefônica. |
OpstrCamera |
Necessário para poder acessar o dispositivo da câmera. |
OpstrCoarseLocation |
Acesso a informações grosseiras de localização. |
OpstrFineLocation |
Acesso a informações de localização finas. |
OpstrGetUsageStats |
Acesso ao |
OpstrMockLocation |
Injete a localização fictícia no sistema. |
OpstrMonitorHighPowerLocation |
Monitoramento contínuo de dados de localização com uma solicitação de energia relativamente alta. |
OpstrMonitorLocation |
Monitoramento contínuo dos dados de localização. |
OpstrPictureInPicture |
Acesso ao picture-in-picture. |
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 registro de chamadas do usuário. |
OpstrReadCellBroadcasts |
Leia as mensagens de transmissão de celular recebidas anteriormente. |
OpstrReadContacts |
Permite que um aplicativo leia os dados de contatos do usuário. |
OpstrReadExternalStorage |
Leia o armazenamento externo. |
OpstrReadPhoneNumbers |
Os aplicativos são usados para duas finalidades: controle de acesso e rastreamento. |
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 por 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 chamadas SIP por VOIP ou WiFi |
OpstrWriteCalendar |
Permite que um aplicativo grave nos dados do calendário do usuário. |
OpstrWriteCallLog |
Permite que um aplicativo grave no log de chamadas do usuário. |
OpstrWriteContacts |
Permite que um aplicativo grave nos dados de contatos do usuário. |
OpstrWriteExternalStorage |
Gravar armazenamento externo. |
OpstrWriteSettings |
Necessário para gravar/modificar/atualizar configurações do sistema. |
WatchForegroundChanges |
Obsoleto.
Sinalizador para |
Propriedades
Class |
Retorna a classe de tempo de execução deste |
Handle |
O identificador para a instância subjacente do Android. (Herdado de Object) |
JniIdentityHashCode |
Os aplicativos são usados para duas finalidades: controle de acesso e rastreamento. (Herdado de Object) |
JniPeerMembers |
Os aplicativos são usados para duas finalidades: controle de acesso e rastreamento. |
PeerReference |
Os aplicativos são usados para duas finalidades: controle de acesso e rastreamento. (Herdado de Object) |
ThresholdClass |
Esta API suporta a infraestrutura Mono para Android e não se destina a ser usada diretamente do seu código. |
ThresholdType |
Esta API suporta a infraestrutura Mono para Android e não se destina a ser usada diretamente do seu código. |
Métodos
CheckOp(String, Int32, String) |
Este membro foi preterido. |
CheckOpNoThrow(String, Int32, String) |
Este membro foi preterido. |
CheckPackage(Int32, String) |
Este membro foi preterido. |
Clone() |
Cria e retorna uma cópia desse objeto. (Herdado de Object) |
Dispose() |
Os aplicativos são usados para duas finalidades: controle de acesso e rastreamento. (Herdado de Object) |
Dispose(Boolean) |
Os aplicativos são usados para duas finalidades: controle de acesso e rastreamento. (Herdado de Object) |
Equals(Object) |
Indica se algum outro objeto é "igual" a este. (Herdado de Object) |
FinishOp(String, Int32, String) |
Este membro foi preterido. |
FinishOp(String, Int32, String, String) |
Informe que um aplicativo não está mais executando uma operação que havia sido iniciada anteriormente com |
FinishProxyOp(String, Int32, String, String) |
Informe que um aplicativo não está mais executando uma operação que havia sido iniciada anteriormente com |
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, i. |
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) |
Este membro foi preterido. |
NoteOp(String, Int32, String, String, String) |
Anote um aplicativo executando uma operação e verifique se o aplicativo tem permissão para executá-la. |
NoteOpNoThrow(String, Int32, String) |
Este membro foi preterido. |
NoteOpNoThrow(String, Int32, String, String, String) |
Tipo, |
NoteProxyOp(String, String) |
Este membro foi preterido. |
NoteProxyOp(String, String, Int32, String, String) |
Anote um aplicativo executando uma operação em nome de outro aplicativo ao manipular um IPC. |
NoteProxyOpNoThrow(String, String) |
Este membro foi preterido. |
NoteProxyOpNoThrow(String, String, Int32) |
Este membro foi preterido. |
NoteProxyOpNoThrow(String, String, Int32, String, String) |
Tipo, |
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 do aplicativo associado a uma determinada permissão. |
SetHandle(IntPtr, JniHandleOwnership) |
Define a propriedade Handle. (Herdado de Object) |
SetOnOpNotedCallback(IExecutor, AppOpsManager+OnOpNotedCallback) |
Defina um novo |
StartOp(String, Int32, String) |
Este membro foi preterido. |
StartOp(String, Int32, String, String, String) |
Relate que um aplicativo começou a executar uma operação de longa execução. |
StartOpNoThrow(String, Int32, String) |
Este membro foi preterido. |
StartOpNoThrow(String, Int32, String, String, String) |
Tipo, |
StartProxyOp(String, Int32, String, String, String) |
Relatar que um aplicativo começou a executar uma operação de longa execução em nome de outro aplicativo ao manipular um IPC. |
StartProxyOpNoThrow(String, Int32, String, String, String) |
Tipo, |
StartWatchingActive(String[], IExecutor, AppOpsManager+IOnOpActiveChangedListener) |
Os aplicativos são usados para duas finalidades: controle de acesso e rastreamento. |
StartWatchingMode(String, String, AppOpsManager+IOnOpChangedListener) |
Monitore as alterações no modo de operação para a operação fornecida no pacote de aplicativo fornecido. |
StartWatchingMode(String, String, WatchForeground, AppOpsManager+IOnOpChangedListener) |
Os aplicativos são usados para duas finalidades: controle de acesso e rastreamento. |
StopWatchingActive(AppOpsManager+IOnOpActiveChangedListener) |
Pare de observar as alterações no estado ativo de um aplicativo-op. |
StopWatchingMode(AppOpsManager+IOnOpChangedListener) |
Pare o monitoramento que foi iniciado anteriormente com |
ToArray<T>() |
Os aplicativos são usados para duas finalidades: controle de acesso e rastreamento. (Herdado de Object) |
ToString() |
Retorna uma representação de cadeia de caracteres do objeto. (Herdado de Object) |
UnregisterFromRuntime() |
Os aplicativos são usados para duas finalidades: controle de acesso e rastreamento. (Herdado de Object) |
UnsafeCheckOp(String, Int32, String) |
Faça uma verificação rápida para saber se um aplicativo pode ser capaz de executar uma operação. |
UnsafeCheckOpNoThrow(String, Int32, String) |
Tipo, |
UnsafeCheckOpRaw(String, Int32, String) |
Gostar |
UnsafeCheckOpRawNoThrow(String, Int32, String) |
Gostar |
Wait() |
Faz com que o thread atual aguarde até que ele seja ativado, normalmente sendo <em notificado</em> ou <em>interrompido</em>>. (Herdado de Object) |
Wait(Int64) |
Faz com que o thread atual aguarde até que ele seja despertado, normalmente sendo <em>notificado</em> ou <em interrompido</em>, ou até que>uma certa quantidade de tempo real tenha decorrido. (Herdado de Object) |
Wait(Int64, Int32) |
Faz com que o thread atual aguarde até que ele seja despertado, normalmente sendo <em>notificado</em> ou <em interrompido</em>, ou até que>uma certa quantidade de tempo real tenha decorrido. (Herdado de Object) |
Implantações explícitas de interface
IJavaPeerable.Disposed() |
Os aplicativos são usados para duas finalidades: controle de acesso e rastreamento. (Herdado de Object) |
IJavaPeerable.DisposeUnlessReferenced() |
Os aplicativos são usados para duas finalidades: controle de acesso e rastreamento. (Herdado de Object) |
IJavaPeerable.Finalized() |
Os aplicativos são usados para duas finalidades: controle de acesso e rastreamento. (Herdado de Object) |
IJavaPeerable.JniManagedPeerState |
Os aplicativos são usados para duas finalidades: controle de acesso e rastreamento. (Herdado de Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Os aplicativos são usados para duas finalidades: controle de acesso e rastreamento. (Herdado de Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Os aplicativos são usados para duas finalidades: controle de acesso e rastreamento. (Herdado de Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Os aplicativos são usados para duas finalidades: controle de acesso e rastreamento. (Herdado de Object) |
Métodos de Extensão
JavaCast<TResult>(IJavaObject) |
Executa uma conversão de tipo verificada em tempo de execução do Android. |
JavaCast<TResult>(IJavaObject) |
Os aplicativos são usados para duas finalidades: controle de acesso e rastreamento. |
GetJniTypeName(IJavaPeerable) |
Os aplicativos são usados para duas finalidades: controle de acesso e rastreamento. |