AttributionSource 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.
Essa classe representa uma fonte à qual o acesso aos dados protegidos por permissão deve ser atribuído.
[Android.Runtime.Register("android/content/AttributionSource", ApiSince=31, DoNotGenerateAcw=true)]
public sealed class AttributionSource : Java.Lang.Object, Android.OS.IParcelable, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("android/content/AttributionSource", ApiSince=31, DoNotGenerateAcw=true)>]
type AttributionSource = class
inherit Object
interface IParcelable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- Herança
- Atributos
- Implementações
Comentários
Essa classe representa uma fonte à qual o acesso aos dados protegidos por permissão deve ser atribuído. As fontes de atribuição podem ser encadeadas para representar casos em que os dados protegidos fluiriam por vários aplicativos. Por exemplo, o aplicativo A pode solicitar contatos ao aplicativo B e, por sua vez, o aplicativo B pode solicitar contatos ao aplicativo C. Nesse caso, a cadeia de atribuição seria A -> B -> C e o fluxo de dados seria C -> B -> A. Há dois benefícios principais de usar o mecanismo de origem de atribuição: evite fazer verificações de permissão explícitas em nome do aplicativo de chamada se você estiver acessando dados privados em seu nome para enviar de volta; evite o acesso duplo a dados culpando o que acontece quando você verifica as permissões do aplicativo de chamada e quando você acessa os dados por trás dessas permissões (para permissões de runtime). Além disso, se não estiver culpando explicitamente o chamador, o acesso a dados será contado para seu aplicativo versus para o aplicativo anterior em que o seu era apenas um proxy.
Cada Context um tem uma fonte de atribuição e você pode obtê-la por meio Context#getAttributionSource() da própria representação, que é uma cadeia de uma. Você pode atribuir trabalho a outro aplicativo ou, mais precisamente, a uma cadeia de aplicativos, por meio da qual os dados que você estaria acessando fluiriam, Context#createContext( ContextParams) além de especificar uma fonte de atribuição para o próximo aplicativo receber os dados protegidos que você está acessando.AttributionSource.Builder#setNext( AttributionSource) A criação dessa cadeia de atribuição garante que a fonte de dados verifique se cada aplicativo na cadeia de atribuição tem permissão para acessar os dados antes de liberá-los. A fonte de dados também registrará adequadamente que esses dados foram acessados pelos aplicativos na sequência se os dados estiverem por trás de uma permissão confidencial (por exemplo, perigoso). Novamente, isso será útil se você estiver acessando os dados em nome de outro aplicativo, por exemplo, um reconhecedor de fala usando o microfone para que ele possa fornecer reconhecimento a um aplicativo de chamada.
Você pode criar uma cadeia de atribuição de você e de qualquer outro aplicativo sem qualquer verificação, pois isso já está disponível por meio das android.app.AppOpsManager APIs. Isso tem suporte para lidar com casos em que você não tem acesso à origem de atribuição do chamador e pode usar diretamente as AttributionSource.Builder APIs. No entanto, se os dados fluem por mais de dois aplicativos (mais do que você acessa os dados do chamador), você precisará ter um identificador para o AttributionSource contexto do aplicativo de chamada para criar um contexto de atribuição. Isso significa que você precisa ter uma API para que o outro aplicativo envie sua origem de atribuição ou use uma API de plataforma que redirecione a origem da atribuição de chamadores.
Você não pode forjar uma cadeia de atribuição sem a participação de cada aplicativo na cadeia de atribuição (além do caso especial mencionado acima). Para criar uma fonte de atribuição confiável, você precisa criar um contexto de atribuição que aponte para uma fonte de atribuição que foi explicitamente criada pelo aplicativo ao qual se refere, recursivamente.
Como a criação de um contexto de atribuição leva a todas as permissões para aplicativos na cadeia de atribuição que está sendo verificada, você precisa esperar obter uma exceção de segurança ao acessar APIs protegidas por permissão, já que algum aplicativo na cadeia pode não ter a permissão.
Java documentação para android.content.AttributionSource.
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.
Propriedades
| Nome | Description |
|---|---|
| AttributionTag |
A marca de atribuição do aplicativo que acessa os dados protegidos por permissão. |
| Class |
Retorna a classe de runtime deste |
| Creator |
Essa classe representa uma fonte à qual o acesso aos dados protegidos por permissão deve ser atribuído. |
| DeviceId |
Obtém a ID do dispositivo para essa fonte de atribuição. |
| Handle |
O identificador para a instância subjacente do Android. (Herdado de Object) |
| JniIdentityHashCode |
Essa classe representa uma fonte à qual o acesso aos dados protegidos por permissão deve ser atribuído. (Herdado de Object) |
| JniPeerMembers |
Essa classe representa uma fonte à qual o acesso aos dados protegidos por permissão deve ser atribuído. |
| Next |
O próximo aplicativo a receber os dados protegidos por permissão. |
| PackageName |
O pacote que está acessando os dados protegidos por permissão. |
| PeerReference |
Essa classe representa uma fonte à qual o acesso aos dados protegidos por permissão deve ser atribuído. (Herdado de Object) |
| Pid |
O PID que está acessando os dados protegidos por permissão. |
| ThresholdClass |
Essa API dá suporte à infraestrutura do Mono para Android e não se destina a ser usada diretamente do seu código. (Herdado de Object) |
| ThresholdType |
Essa API dá suporte à infraestrutura do Mono para Android e não se destina a ser usada diretamente do seu código. (Herdado de Object) |
| Uid |
A UID que está acessando os dados protegidos por permissão. |
Métodos
| Nome | Description |
|---|---|
| CheckCallingUid() |
Se você estiver tratando um IPC e não confiar no chamador, precisará validar se a origem da atribuição é uma para o aplicativo de chamada impedir que o chamador passe uma fonte de outro aplicativo sem se incluir na cadeia de atribuição. |
| Clone() |
Cria e retorna uma cópia desse objeto. (Herdado de Object) |
| DescribeContents() |
Essa classe representa uma fonte à qual o acesso aos dados protegidos por permissão deve ser atribuído. |
| Dispose() |
Essa classe representa uma fonte à qual o acesso aos dados protegidos por permissão deve ser atribuído. (Herdado de Object) |
| Dispose(Boolean) |
Essa classe representa uma fonte à qual o acesso aos dados protegidos por permissão deve ser atribuído. (Herdado de Object) |
| EnforceCallingUid() |
Se você estiver tratando um IPC e não confiar no chamador, precisará validar se a origem da atribuição é uma para o aplicativo de chamada impedir que o chamador passe uma fonte de outro aplicativo sem se incluir na cadeia de atribuição. |
| Equals(Object) |
Indica se algum outro objeto é "igual a" este. (Herdado de Object) |
| GetHashCode() |
Retorna um valor de código hash para o objeto. (Herdado de Object) |
| IsTrusted(Context) |
Verifica se essa fonte de atribuição pode ser confiável. |
| 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) |
| MyAttributionSource() |
Retorna um genérico |
| 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) |
| SetHandle(IntPtr, JniHandleOwnership) |
Define a propriedade Handle (Herdado de Object) |
| ToArray<T>() |
Essa classe representa uma fonte à qual o acesso aos dados protegidos por permissão deve ser atribuído. (Herdado de Object) |
| ToString() |
Retorna uma representação de cadeia de caracteres do objeto. (Herdado de Object) |
| UnregisterFromRuntime() |
Essa classe representa uma fonte à qual o acesso aos dados protegidos por permissão deve ser atribuído. (Herdado de Object) |
| 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) |
| WriteToParcel(Parcel, ParcelableWriteFlags) |
Essa classe representa uma fonte à qual o acesso aos dados protegidos por permissão deve ser atribuído. |
Implantações explícitas de interface
| Nome | Description |
|---|---|
| IJavaPeerable.Disposed() |
Essa classe representa uma fonte à qual o acesso aos dados protegidos por permissão deve ser atribuído. (Herdado de Object) |
| IJavaPeerable.DisposeUnlessReferenced() |
Essa classe representa uma fonte à qual o acesso aos dados protegidos por permissão deve ser atribuído. (Herdado de Object) |
| IJavaPeerable.Finalized() |
Essa classe representa uma fonte à qual o acesso aos dados protegidos por permissão deve ser atribuído. (Herdado de Object) |
| IJavaPeerable.JniManagedPeerState |
Essa classe representa uma fonte à qual o acesso aos dados protegidos por permissão deve ser atribuído. (Herdado de Object) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Essa classe representa uma fonte à qual o acesso aos dados protegidos por permissão deve ser atribuído. (Herdado de Object) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Essa classe representa uma fonte à qual o acesso aos dados protegidos por permissão deve ser atribuído. (Herdado de Object) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Essa classe representa uma fonte à qual o acesso aos dados protegidos por permissão deve ser atribuído. (Herdado de Object) |
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) |
Essa classe representa uma fonte à qual o acesso aos dados protegidos por permissão deve ser atribuído. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Tente coagir a digitar |