Implementar planos de dados

Com o Android 9, as operadoras podem fornecer do plano de acesso aos usuários no app Configurações para facilitar a compreensão e dar suporte chamadas. Em dispositivos com o Android 4.0 e superior, os usuários podem configurar os detalhes do plano de dados específico da operadora no aplicativo Configurações, por definir avisos e limites para gerenciar o uso de dados.

Configuração por operadora

Para configurar planos de dados, as operadoras podem adicionar funcionalidade aos seus Apps Android que usam o APIs SubscriptionPlan. As APIs foram projetadas para dar suporte a uma ampla variedade de tipos de planos de dados, incluindo planos recorrentes e não recorrentes e planos que mudam com o tempo.

Este é um exemplo de como configurar um tipo comum de plano de dados recorrente mensal:

SubscriptionManager sm =
    context.getSystemService(SubscriptionManager.class);
sm.setSubscriptionPlans(subId, Lists.newArrayList(
    SubscriptionPlan.Builder.createRecurringMonthly(
            ZonedDateTime.parse("2016-12-03T10:00:00Z"))
        .setTitle("G-Mobile")
        .setDataLimit(4_000_000_000L,
            SubscriptionPlan.LIMIT_BEHAVIOR_BILLED)
        .setDataUsage(200_493_293L, dataUsageTimestamp)
        .build()));

O dispositivo só permite que um app configure planos de dados em uma destas condições:

As duas primeiras condições permitem que o usuário instale o app da operadora, sem exigir que ele seja pré-instalado na imagem do sistema na fábrica. O SO aplica (e o CDD exige) que todos os detalhes do plano de dados configurado sejam protegidos e disponibilizados somente no app da operadora forneceu os detalhes ao sistema operacional.

Uma sugestão é que um aplicativo de operadora use um serviço de manutenção ocioso para atualizar os detalhes do plano de dados diariamente, mas as operadoras podem usar diversos vários mecanismos, como receber detalhes do plano de dados pelos dados internos da operadora Mensagens SMS. Os serviços de manutenção ociosa são melhor implementados com uma JobScheduler job que usa setRequiresDeviceIdle() e setRequiresCharging()

Uso por SO

O SO usa os detalhes do plano de dados fornecidos pelas APIs SubscriptionPlan no da seguinte maneira:

  • Os detalhes do plano são exibidos no app Configurações para mostrar dados precisos aos usuários e fornecer links diretos para o app da operadora oportunidades de upgrade/upsell.
  • O aviso de uso de dados e os limites de notificação de limite são automaticamente configurados com base nos detalhes do plano. o alerta será definido como 90% ou ao atingir um limite estabelecido.
  • Se a operadora indicar temporariamente que a rede "congestionado", o SO atrasa as tarefas do JobScheduler que podem sofrer mudanças de horário, reduzindo a carga na rede da operadora.
  • Se a operadora indicar temporariamente que a rede "unmetered", o SO pode sinalizar a conexão celular como "ilimitada" até que a operadora limpa a substituição ou até que o valor de tempo limite (se fornecido) seja atingido.
  • Ao comparar o uso atual de dados do usuário com o limite de dados geral, o O SO estima o uso normal de dados do usuário no fim do ciclo de faturamento e aloca conservadoramente 10% de todos os dados excedentes para melhorar do usuário, por exemplo, ao permitir que apps usem dados de vários caminhos.

Personalização e validação

O aplicativo Configurações do Android exibe todos os detalhes do plano de dados configurado pela operadora, garantindo que os usuários vejam o status mais preciso da relação com a operadora, e oferecendo aos usuários um caminho para o app da operadora para que façam upgrade do plano. Dispositivo fabricantes que personalizam o app Configurações são recomendados para continuar trazendo à tona esses detalhes.

As APIs SubscriptionManager descritas nesta página são testadas por android.telephony.cts.SubscriptionManagerTest, que garante que o plano de dados podem ser configurados por apps de operadoras e que as alterações sejam propagadas do SO.