• Our new service is now live: Lowcost VPN — around €1.20/month + your local tax.

    Learn more >>>

Exibir na aba Ligações qual SIM Card

maxwgod

New member
Vi que existe uma limitação no Android para o "CallScreeningService": no "onScreenCall()" não é disponibilizada diretamente a informação de qual SIM/PhoneAccount recebeu a chamada.

Mas encontrei uma possível alternativa que talvez possa ser explorada pelo CallFilter.

O Android registra no Call Log o "CallLog.Calls.PHONE_ACCOUNT_ID", que identifica a Phone Account utilizada para a chamada. Esse identificador aparentemente pode ser relacionado ao "SubscriptionManager" / "subscriptionId", permitindo determinar posteriormente se a chamada entrou pelo SIM 1 ou SIM 2.

A ideia seria algo como:

"CallScreeningService" → identifica a chamada pelo número → consulta posteriormente o Call Log → obtém "PHONE_ACCOUNT_ID" → relaciona com "SubscriptionManager" → determina SIM 1 ou SIM 2.

Sei que isso provavelmente não permite saber o SIM durante a execução do "onScreenCall()", mas poderia permitir ao CallFilter identificar o SIM depois que a chamada foi registrada.

Vocês já consideraram essa abordagem? Ela poderia ser implementada no CallFilter, considerando as permissões e restrições atuais do Android?

Seria muito útil, principalmente em aparelhos Dual SIM, onde atualmente não é possível distinguir qual linha recebeu a chamada.
 
Back
Top