>
Criei uma app que trabalha em background. Com base nos conceitos Service, AlarmManager e BroadcastReceiver.
A app acessa uma webservice de minuto em minuto.
Para isso uso uma Service que recupera o dado do bd da webservice e notifica o usuário: 0 não notifica e 1 notifica, bem simples.
Coloquei nesta mesma Service o NotificationManager, e até aqui está tudo Ok.
O problema que a notificação acontece mesmo se o usuário estiver em uma ligação, o que é terrível, pois estou usando som e vibração nesta notificação.
Como farei para não ocorrer a notificação?
Posso nesta mesma Service ler o estado do telefone, caso esteja em digamos OFF_HOOK, não notificar, ou seja, aguardar para próxima ação do AlarmManeger?
Olá Cristiano,
Tudo bem?
Veja se o método abaixo resolve seu problema.
Se retornar true é porque estão utilizando o telefone.
public static boolean isCallActive(Context context){
AudioManager manager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
if(manager.getMode()==AudioManager.MODE_IN_CALL){
return true;
}
else{
return false;
}
}
Ok funcionou perfeito
Obrigado!