Suporte a redes de várias operadoras

Os dispositivos lançados com o Android 11 ou versões mais recentes podem oferecer suporte a várias redes móveis terrestres públicas (PLMNs, na sigla em inglês). O Android 11 inclui métodos nas APIs de identificação de células para receber informações sobre as PLMNs com suporte de uma célula e distinguir entre provedores de serviços de celular e operadores de rede.

O suporte a várias PLMNs oferece flexibilidade para as operadoras de rede móvel (MNOs) permitindo que elas transmitam várias identidades. Isso é necessário principalmente para oferecer suporte a acordos de compartilhamento em que hardwares ou torres comuns são usados por vários MNOs. Em um cenário de várias PLMN, quando um dispositivo escolhe se registrar usando uma torre específica, ele seleciona o PLMN para usar nesse registro, o que bloqueia o perfil do dispositivo para esse PLMN para todas as comunicações seguintes. O método getRegisteredPlmn recupera o PLMN registrado para o dispositivo.

Implementação

Para oferecer suporte a várias PLMNs em dispositivos com o Android 11 ou versões mais recentes, implemente as funções nos locais abaixo em IRadio.

IRadio.hal e IRadioResponse.hal

No HAL do rádio 1.5, para oferecer suporte a várias PLMNs, as informações sobre a rede em que o dispositivo é registrado são informadas de maneira diferente das versões anteriores. Primeiro, o PLMN registrado (RPLMN) é informado separadamente porque, em células com vários PLMNs, o RPLMN pode não ser o ID principal. E nas estruturas CellIdentity, a célula fornece um PLMN-ID principal e uma lista de outros PLMN-IDs. O RPLMN precisa ser o ID de PLMN principal ou um dos outros PLMN-IDs indicados na estrutura CellIdentity.

As mudanças no HAL do Radio 1.5 afetam os dois métodos HAL a seguir em IRadio.hal e os métodos de resposta correspondentes em IRadioResponse.hal.

  • getDataRegState_1_5 e getDataRegStateResult_1_5(RegStateResult result)
  • getVoiceRegState_1_5 e getVoiceRegStateResult_1_5(RegStateresult result)

types.hal

Implemente o seguinte em types.hal:

  • ClosedSubscriberGroupInfo: incluído opcionalmente com cada instância CellIdentity. Essa estrutura é usada para fornecer detalhes sobre o grupo de assinantes fechado ao qual uma célula pertence, se houver. Isso é comumente usado para identificar células pequenas, como dispositivos LTE pessoais. Ele também pode ser usado em implantações como o CBRS LTE.
  • CellIdentityLte: oferece suporte a uma lista de outros PLMN-IDs.
  • CellIdentityWcdma: oferece suporte a uma lista de outros PLMN-IDs.
  • CellIdentityTdscdma: oferece suporte a uma lista de outros PLMN-IDs.
  • RegStateResult: inclui uma estrutura CellIdentity atualizada e um campo para indicar o RPLMN.

Validação

Para testar sua implementação, execute o seguinte teste de CTS: CellInfoTest enquanto estiver registrado em uma rede de acesso por rádio de vários operadores (MORAN, na sigla em inglês) ou rede principal de vários operadores (MOCN, na sigla em inglês).