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.
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.
