Suporte a redes de várias operadoras

Os dispositivos lançados com o Android 11 ou mais recente 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.

Esse suporte oferece flexibilidade para operadoras de rede móvel (MNOs, na sigla em inglês) ao permitir 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 com vários PLMNs, quando um dispositivo escolhe se registrar usando uma torre específica, ele seleciona o PLMN a ser usado para esse registro, o que bloqueia o perfil do dispositivo para esse PLMN em todas as comunicações seguintes. O método getRegisteredPlmn recupera a PLMN registrada para o dispositivo.

Implementação

Para oferecer suporte a várias PLMNs em dispositivos com o Android 11 ou mais recente, 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 PLMN-ID principal ou um dos PLMN-IDs adicionais 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 pequenas células, 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 a implementação, execute o seguinte teste CTS: CellInfoTest enquanto estiver registrado em uma rede de acesso por rádio multioperadora (MORAN) ou em uma rede central multioperadora (MOCN).