O Android 9 fornece APIs para oferecer melhor suporte a aplicativos de chamada de terceiros (3P). Os aplicativos de chamada de terceiros geralmente dependem de APIs de telefonia, como a transmissão PHONE_STATE
, para coexistir com as chamadas telefônicas da operadora. Como consequência, os aplicativos de chamada de terceiros devem dar prioridade às chamadas da operadora e, muitas vezes, rejeitar silenciosamente as chamadas recebidas no aplicativo ou encerrar uma chamada em andamento para dar lugar a uma chamada da operadora.
As APIs no Android 9 oferecem suporte a cenários de chamadas simultâneas entre aplicativos de terceiros e chamadas de operadora. Isso possibilita, por exemplo, receber uma chamada 3P recebida durante uma chamada da operadora. A estrutura assume a responsabilidade de garantir que a chamada da operadora seja retida quando o usuário se envolver na chamada 3P.
No Android 9, aplicativos de chamada de terceiros são incentivados a implementar a API ConnectionService
autogerenciada. Para obter mais informações sobre como criar um aplicativo de chamada usando essa API, consulte Criar um aplicativo de chamada .
A API ConnectionService
autogerenciada também oferece aos desenvolvedores a oportunidade de optar por ter chamadas em seu aplicativo registradas no log de chamadas do sistema (consulte EXTRA_LOG_SELF_MANAGED_CALLS
). De acordo com os requisitos do Documento de Definição de Compatibilidade (CDD) do Android (seção 7.4.1.2), você deve garantir que seu discador/aplicativo de telefone exiba essas entradas de registro de chamadas e mostre o nome do aplicativo de chamada terceirizado onde a chamada foi originada (para um exemplo de como o aplicativo de discagem AOSP atende a esse requisito, consulte Entradas de registro de chamadas de aplicativos de chamada 3P ).
Os aplicativos são responsáveis por definir CAPABILITY_SUPPORT_HOLD
e CAPABILITY_HOLD
nas conexões de seus aplicativos. No entanto, é possível que um aplicativo não possa reter uma chamada em algumas circunstâncias. A estrutura inclui disposições para resolver esses tipos de casos.
Cenários
Você deve modificar seu aplicativo discador para lidar com os seguintes cenários.
Lidando com chamadas recebidas que desconectam uma chamada em andamento
Em um cenário em que há uma chamada 3P em andamento (por exemplo, em uma chamada SuperCaller) que não suporta espera, e o usuário recebe uma chamada móvel (por exemplo, por meio de sua operadora FooCom), seu aplicativo Discador/telefone deve indicar ao usuário que atender a chamada de rede móvel encerrará a chamada 3P em andamento.
Essa experiência do usuário é importante, pois um aplicativo de chamada 3P pode ter uma chamada em andamento que não pode ser realizada pela estrutura. Atender uma nova chamada móvel faz com que a chamada 3P em andamento seja desconectada.
Veja a interface do usuário abaixo para um exemplo:
Seu aplicativo de discagem pode verificar se uma chamada recebida faz com que outra chamada seja desconectada, verificando os extras da chamada . Certifique-se de que EXTRA_ANSWERING_DROPS_FG_CALL
esteja definido como TRUE
e EXTRA_ANSWERING_DROPS_FG_CALL_APP_NAME
esteja definido como o nome do aplicativo cuja chamada é desconectada ao atender a chamada móvel recebida.
Entradas de registro de chamadas de aplicativos de chamada de terceiros
Os desenvolvedores de aplicativos de chamada 3P podem optar por ter chamadas em seu aplicativo registradas no registro de chamadas do sistema (consulte EXTRA_LOG_SELF_MANAGED_CALLS
). Isso significa que é possível ter entradas no registro de chamadas que não sejam para chamadas de rede móvel.
Quando o aplicativo discador AOSP exibe entradas de registro de chamadas relacionadas a um aplicativo de chamada 3P, o nome do aplicativo onde a chamada ocorreu é exibido no registro de chamadas, conforme ilustrado abaixo:
Para determinar o nome de um aplicativo associado a uma entrada de registro de chamada, use as colunas PHONE_ACCOUNT_COMPONENT_NAME
e PHONE_ACCOUNT_ID
no provedor de registro de chamada para criar uma instância de PhoneAccountHandle
, que identifica a origem de uma entrada de registro de chamada. Consulte TelecomManager
para obter os detalhes da PhoneAccount.
Para determinar se uma entrada de registro de chamada é de um aplicativo de chamada 3P, verifique os recursos PhoneAccount
para ver se CAPABILITY_SELF_MANAGED
está definido.
O método getLabel
do PhoneAccount
retornado retorna o nome do aplicativo associado a uma entrada de registro de chamada do aplicativo de chamada 3P.
Validação
Para testar se seu dispositivo oferece suporte a aplicativos de chamada de terceiros, use o aplicativo de teste Telecomm, que implementa a API ConnectionService autogerenciada. O aplicativo está localizado em /packages/services/Telecomm/testapps/
.
Crie o aplicativo de teste a partir da raiz do repositório de origem do Android usando:
mmma packages/services/Telecomm/testapps/
Instale o apk de compilação usando
adb install -g -r <apk path>
. Um ícone de amostra autogerenciada é então adicionado ao seu iniciador.Toque no ícone para abrir o aplicativo de teste.
Lidando com chamadas recebidas que desconectam uma chamada em andamento
Siga estas etapas para verificar se uma chamada recebida desconecta uma chamada 3P em andamento.
- Desmarque a opção Holdable .
- Toque em OUTGOING para iniciar uma nova amostra de chamada de saída.
- Toque no botão ATIVO para ativar a chamada.
- Ligue para o número de telefone do dispositivo em teste com outro telefone. Isso invoca o cenário em que seu discador recebe o nome de um aplicativo, que terá sua chamada desconectada.
- Quando terminar, toque no botão DESCONECTAR no aplicativo de teste.
Entradas de registro de chamadas de aplicativos de chamada de terceiros
Depois de concluir as etapas acima, o aplicativo de teste deve ter registrado uma chamada no registro de chamadas do sistema. Para confirmar se o dispositivo registra chamadas de aplicativos de chamada de terceiros, abra seu aplicativo de discagem e confirme se a chamada aparece no registro de chamadas do sistema.
, O Android 9 fornece APIs para oferecer melhor suporte a aplicativos de chamadas de terceiros (3P). Os aplicativos de chamada de terceiros geralmente dependem de APIs de telefonia, como a transmissão PHONE_STATE
, para coexistir com as chamadas telefônicas da operadora. Como consequência, os aplicativos de chamada de terceiros devem dar prioridade às chamadas da operadora e, muitas vezes, rejeitar silenciosamente as chamadas recebidas no aplicativo ou encerrar uma chamada em andamento para dar lugar a uma chamada da operadora.
As APIs no Android 9 oferecem suporte a cenários de chamadas simultâneas entre aplicativos de terceiros e chamadas de operadora. Isso possibilita, por exemplo, receber uma chamada 3P recebida durante uma chamada da operadora. A estrutura assume a responsabilidade de garantir que a chamada da operadora seja retida quando o usuário se envolver na chamada 3P.
No Android 9, aplicativos de chamada de terceiros são incentivados a implementar a API ConnectionService
autogerenciada. Para obter mais informações sobre como criar um aplicativo de chamada usando essa API, consulte Criar um aplicativo de chamada .
A API ConnectionService
autogerenciada também oferece aos desenvolvedores a oportunidade de optar por ter chamadas em seu aplicativo registradas no log de chamadas do sistema (consulte EXTRA_LOG_SELF_MANAGED_CALLS
). De acordo com os requisitos do Documento de Definição de Compatibilidade (CDD) do Android (seção 7.4.1.2), você deve garantir que seu discador/aplicativo de telefone exiba essas entradas de registro de chamadas e mostre o nome do aplicativo de chamada terceirizado onde a chamada foi originada (para um exemplo de como o aplicativo de discagem AOSP atende a esse requisito, consulte Entradas de registro de chamadas de aplicativos de chamada 3P ).
Os aplicativos são responsáveis por definir CAPABILITY_SUPPORT_HOLD
e CAPABILITY_HOLD
nas conexões de seus aplicativos. No entanto, é possível que um aplicativo não possa reter uma chamada em algumas circunstâncias. A estrutura inclui disposições para resolver esses tipos de casos.
Cenários
Você deve modificar seu aplicativo discador para lidar com os seguintes cenários.
Lidando com chamadas recebidas que desconectam uma chamada em andamento
Em um cenário em que há uma chamada 3P em andamento (por exemplo, em uma chamada SuperCaller) que não suporta espera, e o usuário recebe uma chamada móvel (por exemplo, por meio de sua operadora FooCom), seu aplicativo Discador/telefone deve indicar ao usuário que atender a chamada de rede móvel encerrará a chamada 3P em andamento.
Essa experiência do usuário é importante, pois um aplicativo de chamada 3P pode ter uma chamada em andamento que não pode ser realizada pela estrutura. Atender uma nova chamada móvel faz com que a chamada 3P em andamento seja desconectada.
Veja a interface do usuário abaixo para um exemplo:
Seu aplicativo de discagem pode verificar se uma chamada recebida faz com que outra chamada seja desconectada, verificando os extras da chamada . Certifique-se de que EXTRA_ANSWERING_DROPS_FG_CALL
esteja definido como TRUE
e EXTRA_ANSWERING_DROPS_FG_CALL_APP_NAME
esteja definido como o nome do aplicativo cuja chamada é desconectada ao atender a chamada móvel recebida.
Entradas de registro de chamadas de aplicativos de chamada de terceiros
Os desenvolvedores de aplicativos de chamada 3P podem optar por ter chamadas em seu aplicativo registradas no registro de chamadas do sistema (consulte EXTRA_LOG_SELF_MANAGED_CALLS
). Isso significa que é possível ter entradas no registro de chamadas que não sejam para chamadas de rede móvel.
Quando o aplicativo discador AOSP exibe entradas de registro de chamadas relacionadas a um aplicativo de chamada 3P, o nome do aplicativo onde a chamada ocorreu é exibido no registro de chamadas, conforme ilustrado abaixo:
Para determinar o nome de um aplicativo associado a uma entrada de registro de chamada, use as colunas PHONE_ACCOUNT_COMPONENT_NAME
e PHONE_ACCOUNT_ID
no provedor de registro de chamada para criar uma instância de PhoneAccountHandle
, que identifica a origem de uma entrada de registro de chamada. Consulte TelecomManager
para obter os detalhes da PhoneAccount.
Para determinar se uma entrada de registro de chamada é de um aplicativo de chamada 3P, verifique os recursos PhoneAccount
para ver se CAPABILITY_SELF_MANAGED
está definido.
O método getLabel
do PhoneAccount
retornado retorna o nome do aplicativo associado a uma entrada de registro de chamada do aplicativo de chamada 3P.
Validação
Para testar se seu dispositivo oferece suporte a aplicativos de chamada de terceiros, use o aplicativo de teste Telecomm, que implementa a API ConnectionService autogerenciada. O aplicativo está localizado em /packages/services/Telecomm/testapps/
.
Crie o aplicativo de teste a partir da raiz do repositório de origem do Android usando:
mmma packages/services/Telecomm/testapps/
Instale o apk de compilação usando
adb install -g -r <apk path>
. Um ícone de amostra autogerenciada é então adicionado ao seu iniciador.Toque no ícone para abrir o aplicativo de teste.
Lidando com chamadas recebidas que desconectam uma chamada em andamento
Siga estas etapas para verificar se uma chamada recebida desconecta uma chamada 3P em andamento.
- Desmarque a opção Holdable .
- Toque em OUTGOING para iniciar uma nova amostra de chamada de saída.
- Toque no botão ATIVO para ativar a chamada.
- Ligue para o número de telefone do dispositivo em teste com outro telefone. Isso invoca o cenário em que seu discador recebe o nome de um aplicativo, que terá sua chamada desconectada.
- Quando terminar, toque no botão DESCONECTAR no aplicativo de teste.
Entradas de registro de chamadas de aplicativos de chamada de terceiros
Depois de concluir as etapas acima, o aplicativo de teste deve ter registrado uma chamada no registro de chamadas do sistema. Para confirmar se o dispositivo registra chamadas de aplicativos de chamada de terceiros, abra seu aplicativo de discagem e confirme se a chamada aparece no registro de chamadas do sistema.
, O Android 9 fornece APIs para oferecer melhor suporte a aplicativos de chamada de terceiros (3P). Os aplicativos de chamada de terceiros geralmente dependem de APIs de telefonia, como a transmissão PHONE_STATE
, para coexistir com as chamadas telefônicas da operadora. Como consequência, os aplicativos de chamada de terceiros devem dar prioridade às chamadas da operadora e, muitas vezes, rejeitar silenciosamente as chamadas recebidas no aplicativo ou encerrar uma chamada em andamento para dar lugar a uma chamada da operadora.
As APIs no Android 9 oferecem suporte a cenários de chamadas simultâneas entre aplicativos de terceiros e chamadas de operadora. Isso possibilita, por exemplo, receber uma chamada 3P recebida durante uma chamada da operadora. A estrutura assume a responsabilidade de garantir que a chamada da operadora seja retida quando o usuário se envolver na chamada 3P.
No Android 9, aplicativos de chamada de terceiros são incentivados a implementar a API ConnectionService
autogerenciada. Para obter mais informações sobre como criar um aplicativo de chamada usando essa API, consulte Criar um aplicativo de chamada .
A API ConnectionService
autogerenciada também oferece aos desenvolvedores a oportunidade de optar por ter chamadas em seu aplicativo registradas no log de chamadas do sistema (consulte EXTRA_LOG_SELF_MANAGED_CALLS
). De acordo com os requisitos do Documento de Definição de Compatibilidade (CDD) do Android (seção 7.4.1.2), você deve garantir que seu discador/aplicativo de telefone exiba essas entradas de registro de chamadas e mostre o nome do aplicativo de chamada terceirizado onde a chamada foi originada (para um exemplo de como o aplicativo de discagem AOSP atende a esse requisito, consulte Entradas de registro de chamadas de aplicativos de chamada 3P ).
Os aplicativos são responsáveis por definir CAPABILITY_SUPPORT_HOLD
e CAPABILITY_HOLD
nas conexões de seus aplicativos. No entanto, é possível que um aplicativo não possa reter uma chamada em algumas circunstâncias. A estrutura inclui disposições para resolver esses tipos de casos.
Cenários
Você deve modificar seu aplicativo discador para lidar com os seguintes cenários.
Lidando com chamadas recebidas que desconectam uma chamada em andamento
Em um cenário em que há uma chamada 3P em andamento (por exemplo, em uma chamada SuperCaller) que não suporta espera, e o usuário recebe uma chamada móvel (por exemplo, por meio de sua operadora FooCom), seu aplicativo Discador/telefone deve indicar ao usuário que atender a chamada de rede móvel encerrará a chamada 3P em andamento.
Essa experiência do usuário é importante, pois um aplicativo de chamada 3P pode ter uma chamada em andamento que não pode ser realizada pela estrutura. Atender uma nova chamada móvel faz com que a chamada 3P em andamento seja desconectada.
Veja a interface do usuário abaixo para um exemplo:
Seu aplicativo de discagem pode verificar se uma chamada recebida faz com que outra chamada seja desconectada, verificando os extras da chamada . Certifique-se de que EXTRA_ANSWERING_DROPS_FG_CALL
esteja definido como TRUE
e EXTRA_ANSWERING_DROPS_FG_CALL_APP_NAME
esteja definido como o nome do aplicativo cuja chamada é desconectada ao atender a chamada móvel recebida.
Entradas de registro de chamadas de aplicativos de chamada de terceiros
Os desenvolvedores de aplicativos de chamada 3P podem optar por ter chamadas em seu aplicativo registradas no registro de chamadas do sistema (consulte EXTRA_LOG_SELF_MANAGED_CALLS
). Isso significa que é possível ter entradas no registro de chamadas que não sejam para chamadas de rede móvel.
Quando o aplicativo discador AOSP exibe entradas de registro de chamadas relacionadas a um aplicativo de chamada 3P, o nome do aplicativo onde a chamada ocorreu é exibido no registro de chamadas, conforme ilustrado abaixo:
Para determinar o nome de um aplicativo associado a uma entrada de registro de chamada, use as colunas PHONE_ACCOUNT_COMPONENT_NAME
e PHONE_ACCOUNT_ID
no provedor de registro de chamada para criar uma instância de PhoneAccountHandle
, que identifica a origem de uma entrada de registro de chamada. Consulte TelecomManager
para obter os detalhes da PhoneAccount.
Para determinar se uma entrada de registro de chamada é de um aplicativo de chamada 3P, verifique os recursos PhoneAccount
para ver se CAPABILITY_SELF_MANAGED
está definido.
O método getLabel
do PhoneAccount
retornado retorna o nome do aplicativo associado a uma entrada de registro de chamada do aplicativo de chamada 3P.
Validação
Para testar se seu dispositivo oferece suporte a aplicativos de chamada de terceiros, use o aplicativo de teste Telecomm, que implementa a API ConnectionService autogerenciada. O aplicativo está localizado em /packages/services/Telecomm/testapps/
.
Crie o aplicativo de teste a partir da raiz do repositório de origem do Android usando:
mmma packages/services/Telecomm/testapps/
Instale o apk de compilação usando
adb install -g -r <apk path>
. Um ícone de amostra autogerenciada é então adicionado ao seu iniciador.Toque no ícone para abrir o aplicativo de teste.
Lidando com chamadas recebidas que desconectam uma chamada em andamento
Siga estas etapas para verificar se uma chamada recebida desconecta uma chamada 3P em andamento.
- Desmarque a opção Holdable .
- Toque em OUTGOING para iniciar uma nova amostra de chamada de saída.
- Toque no botão ATIVO para ativar a chamada.
- Ligue para o número de telefone do dispositivo em teste com outro telefone. Isso invoca o cenário em que seu discador recebe o nome de um aplicativo, que terá sua chamada desconectada.
- Quando terminar, toque no botão DESCONECTAR no aplicativo de teste.
Entradas de registro de chamadas de aplicativos de chamada de terceiros
Depois de concluir as etapas acima, o aplicativo de teste deve ter registrado uma chamada no registro de chamadas do sistema. Para confirmar se o dispositivo registra chamadas de aplicativos de chamada de terceiros, abra seu aplicativo de discagem e confirme se a chamada aparece no registro de chamadas do sistema.
, O Android 9 fornece APIs para oferecer melhor suporte a aplicativos de chamadas de terceiros (3P). Os aplicativos de chamada de terceiros geralmente dependem de APIs de telefonia, como a transmissão PHONE_STATE
, para coexistir com as chamadas telefônicas da operadora. Como consequência, os aplicativos de chamada de terceiros devem dar prioridade às chamadas da operadora e, muitas vezes, rejeitar silenciosamente as chamadas recebidas no aplicativo ou encerrar uma chamada em andamento para dar lugar a uma chamada da operadora.
As APIs no Android 9 oferecem suporte a cenários de chamadas simultâneas entre aplicativos de terceiros e chamadas de operadora. Isso possibilita, por exemplo, receber uma chamada 3P recebida durante uma chamada da operadora. A estrutura assume a responsabilidade de garantir que a chamada da operadora seja retida quando o usuário se envolver na chamada 3P.
No Android 9, aplicativos de chamada de terceiros são incentivados a implementar a API ConnectionService
autogerenciada. Para obter mais informações sobre como criar um aplicativo de chamada usando essa API, consulte Criar um aplicativo de chamada .
A API ConnectionService
autogerenciada também oferece aos desenvolvedores a oportunidade de optar por ter chamadas em seu aplicativo registradas no log de chamadas do sistema (consulte EXTRA_LOG_SELF_MANAGED_CALLS
). De acordo com os requisitos do Documento de Definição de Compatibilidade (CDD) do Android (seção 7.4.1.2), você deve garantir que seu discador/aplicativo de telefone exiba essas entradas de registro de chamadas e mostre o nome do aplicativo de chamada terceirizado onde a chamada foi originada (para um exemplo de como o aplicativo de discagem AOSP atende a esse requisito, consulte Entradas de registro de chamadas de aplicativos de chamada 3P ).
Os aplicativos são responsáveis por definir CAPABILITY_SUPPORT_HOLD
e CAPABILITY_HOLD
nas conexões de seus aplicativos. No entanto, é possível que um aplicativo não possa reter uma chamada em algumas circunstâncias. A estrutura inclui disposições para resolver esses tipos de casos.
Cenários
Você deve modificar seu aplicativo discador para lidar com os seguintes cenários.
Lidando com chamadas recebidas que desconectam uma chamada em andamento
Em um cenário em que há uma chamada 3P em andamento (por exemplo, em uma chamada SuperCaller) que não suporta espera, e o usuário recebe uma chamada móvel (por exemplo, por meio de sua operadora FooCom), seu aplicativo Discador/telefone deve indicar ao usuário que atender a chamada de rede móvel encerrará a chamada 3P em andamento.
Essa experiência do usuário é importante, pois um aplicativo de chamada 3P pode ter uma chamada em andamento que não pode ser realizada pela estrutura. Atender uma nova chamada móvel faz com que a chamada 3P em andamento seja desconectada.
Veja a interface do usuário abaixo para um exemplo:
Seu aplicativo de discagem pode verificar se uma chamada recebida faz com que outra chamada seja desconectada, verificando os extras da chamada . Certifique-se de que EXTRA_ANSWERING_DROPS_FG_CALL
esteja definido como TRUE
e EXTRA_ANSWERING_DROPS_FG_CALL_APP_NAME
esteja definido como o nome do aplicativo cuja chamada é desconectada ao atender a chamada móvel recebida.
Entradas de registro de chamadas de aplicativos de chamada de terceiros
Os desenvolvedores de aplicativos de chamada 3P podem optar por ter chamadas em seu aplicativo registradas no registro de chamadas do sistema (consulte EXTRA_LOG_SELF_MANAGED_CALLS
). Isso significa que é possível ter entradas no registro de chamadas que não sejam para chamadas de rede móvel.
Quando o aplicativo discador AOSP exibe entradas de registro de chamadas relacionadas a um aplicativo de chamada 3P, o nome do aplicativo onde a chamada ocorreu é exibido no registro de chamadas, conforme ilustrado abaixo:
Para determinar o nome de um aplicativo associado a uma entrada de registro de chamada, use as colunas PHONE_ACCOUNT_COMPONENT_NAME
e PHONE_ACCOUNT_ID
no provedor de registro de chamada para criar uma instância de PhoneAccountHandle
, que identifica a origem de uma entrada de registro de chamada. Consulte TelecomManager
para obter os detalhes da PhoneAccount.
Para determinar se uma entrada de registro de chamada é de um aplicativo de chamada 3P, verifique os recursos PhoneAccount
para ver se CAPABILITY_SELF_MANAGED
está definido.
O método getLabel
do PhoneAccount
retornado retorna o nome do aplicativo associado a uma entrada de registro de chamada do aplicativo de chamada 3P.
Validação
Para testar se seu dispositivo oferece suporte a aplicativos de chamada de terceiros, use o aplicativo de teste Telecomm, que implementa a API ConnectionService autogerenciada. O aplicativo está localizado em /packages/services/Telecomm/testapps/
.
Crie o aplicativo de teste a partir da raiz do repositório de origem do Android usando:
mmma packages/services/Telecomm/testapps/
Instale o apk de compilação usando
adb install -g -r <apk path>
. Um ícone de amostra autogerenciada é então adicionado ao seu iniciador.Toque no ícone para abrir o aplicativo de teste.
Lidando com chamadas recebidas que desconectam uma chamada em andamento
Siga estas etapas para verificar se uma chamada recebida desconecta uma chamada 3P em andamento.
- Desmarque a opção Holdable .
- Toque em OUTGOING para iniciar uma nova amostra de chamada de saída.
- Toque no botão ATIVO para ativar a chamada.
- Ligue para o número de telefone do dispositivo em teste com outro telefone. Isso invoca o cenário em que seu discador recebe o nome de um aplicativo, que terá sua chamada desconectada.
- Quando terminar, toque no botão DESCONECTAR no aplicativo de teste.
Entradas de registro de chamadas de aplicativos de chamada de terceiros
Depois de concluir as etapas acima, o aplicativo de teste deve ter registrado uma chamada no registro de chamadas do sistema. Para confirmar se o dispositivo registra chamadas de aplicativos de chamadas de terceiros, abra seu aplicativo de discagem e confirme se a chamada aparece no registro de chamadas do sistema.