Bom dia a todos!
Preciso bloquear todas as ligação enquanto a aplicação estiver aberta eu implementei o seguinte codigo
public class ReceberLigacao extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
System.out.println("Receving....");
TelephonyManager telephony = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
TelefoneListener customPhoneListener = new TelefoneListener(context);
telephony.listen(customPhoneListener, PhoneStateListener.LISTEN_CALL_STATE);
}
}
public class TelefoneListener extends PhoneStateListener {
private Context context = null;
public TelefoneListener(Context context) {
this.context = context;
}
@Override
public void onCallStateChanged(int state, String incomingNumber) {
System.out.println("Current State is - " + state);
System.out.println("number "+incomingNumber);
switch (state) {
case TelephonyManager.CALL_STATE_RINGING:
//nesse ponto eu deveria matar a ligação ???
break;
}
super.onCallStateChanged(state, incomingNumber);
}
}
eu pesquisei mto na internet, testei outros exemplos e nenhum funcionou, com este codigo acima eu consigo pegar o evento mais não consigo encerrar a ligação.
embora eu nunca tenha feito, tem um tópico aqui que o pessoal ta discutindo isso: http://stackoverflow.com/questions/599443/android-how-to-hang-up-outgoing-call ve se não te ajuda. (tem um cara falando sobre acessar usando reflection, seria a ultima opção que eu adotaria, pois vai deixar você totalmente dependente de uma implementação :x)
Entao eu vi esse topico so que essa classe com.android.internal.telephony.ITelephony não está acessivel para minha versão 2.1 resultando em falha da mesma forma
Desculpa me intrometer, mas qual a real necessidade de bloquear uma chamada?
Não seria mais fácil quando receber a chamada tratar a aplicação utilizando o clico de vida da activity? Não conheço a fundo o android, mas não sei se seria possível bloquear uma ligação.
Cara se não me engana.
O serviço de Ligação no Android e o serviço de mensagem dentro do sistema android tem prioridade “zero sobre todas” sendo assim.
Torna-se obrigatorio o recebimento da ligação ou de uma mensagem.
mas posso estar enganado.
são porque algumas pessoas que irão usar o app utilizaram o chip somente para 3G e não poderam usar nem para receber e nem para discar(não fui eu quem decidiu isso tenho só que implementar rsrsrs), e o recebimento de ligação atrapalha alguns serviços que rodam enquanto a aplicação é executada.
Boa pergunta!! ahuahau, pq eu estou utilizando um serviço que não deixa sair da aplicação sem autorização, ai o cliente pediu para não deixar receber ligações tb, eu pensei em varias dessas hipoteses todas sem sucesso =(
tambem tenho quase certeza que isso não é possivel. a ligação tem Prioridade. No máximo vc conseguiria exibir um alerta para o usuário finalizar a ligação.
Em java Me eu tenho certeza de que não é possível.
Danilo, sou novo em android, estou com o mesmo problema e sua solução resolveu o mesmo, mas onde implemento o código que vc postou?
Obrigado pela atenção dispensada.
então você tem que implementar o listener que pega a ligação ai voce joga esse metodo dentro do listener, eu não tenho o link aqui mais é só você jogar no google ou no docs da api do android.
Danilo, perdoe minha ignorância, ainda não consegui evoluir sobre isso, se puder me ajudar, agradeço.
Seguinte: preciso que quando minha aplicação esteja executando não entre nenhuma ligação, te pergunto, já que vc tem experiência no assunto, essa é a melhor forma de fazer?