Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] Listener para receber informações sobre a chamada

Poxa então tava dando error,

Sem permissão dá erro.

Ah...busca na net,

Deve ter algo mais tranquilo, como uma flag que indique ligação em espera.

Valeu!

Boa programação.

Att.

Psy Khé.

Em 17 de dezembro de 2012 13:09, William Lopes <williamlopes.dev@gmail.com> escreveu:
Para o onCallStateChanged são apenas três mesmo, ringing, offhook e idle. Não?

Descobri o que era, tem que adicionar a permissão:
  <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
E adicionar ao receiver a action:
  <action android:name="android.intent.action.NEW_OUTGOING_CALL" />

Agora sim dá para fazer como você falou.

Abraços!


Em 17 de dezembro de 2012 12:41, Psy Khé <psykhe6@gmail.com> escreveu:
Deve ter ... e não são só esses três...vide DOC.

Agora para implementar, seria algo como:

Recebeu uma ligação - call = 1.

Recebeu outra ligação - call++; //call = 2

Desligou: call--; //call = 1

Ainda tem um call na fila...e ai você continua, o uso de flag.

Deve rolar,

Agora da uma pesquisa em inglês no stack por algo, que talvez tenha algo que determine o estado em espera, ai você descobre se tem mais de uma ligação.
Isso deve ser certo!

Abs,

Good luck!! Qualquer coisa posta o resultado,

Até.

Em 17 de dezembro de 2012 12:34, William Lopes <williamlopes.dev@gmail.com> escreveu:
Neste listener não, apenas os três mesmo.

Você poderia me passar o caminho para essa implementação?

Abraços!


Em 17 de dezembro de 2012 12:24, Psy Khé <psykhe6@gmail.com> escreveu:
Deve ter como identificar a chamada em espera,

Alguma flag que é disparada, no proprio listen talvez.

Agora senao tiver, da pra fazer uma implementação propria pra isso, com esse listener, assim creio.

Abs,

Psy Khé.

Em 17 de dezembro de 2012 12:16, William Lopes <williamlopes.dev@gmail.com> escreveu:
Então, eu estou fazendo por ele:

public class MyPhoneStateListener extends PhoneStateListener {
@Override
public void onCallStateChanged(int state, String incomingNumber) {
switch (state) {
case TelephonyManager.CALL_STATE_IDLE:
Log.d("Customer Experience", "IDLE");
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
Log.d("Customer Experience", "OFFHOOK");
break;
case TelephonyManager.CALL_STATE_RINGING:
Log.d("Customer Experience", "RINGING");
break;
}
}

}

Meu BroadcastReceiver:

public void onReceive(Context context, Intent intent) {
MyPhoneStateListener phoneListener = new MyPhoneStateListener();
   TelephonyManager telephony = (TelephonyManager) context.getSystemService(
    Context.TELEPHONY_SERVICE);
   telephony.listen(phoneListener, PhoneStateListener.LISTEN_CALL_STATE
    | PhoneStateListener.LISTEN_DATA_CONNECTION_STATE
    | PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
}

Mas dessa forma não funciona como eu quero.

Abraços!


Em 17 de dezembro de 2012 12:12, Psy Khé <psykhe6@gmail.com> escreveu:
Procure por PhoneStateListener,

Ele sempre irá lhe avisar de ligação efetuada, ligação recebida, e desligamento da chamada.

Você é que irá tratar como isso vai ser feito.

Abs,

Psy Khé.

Em 17 de dezembro de 2012 12:05, William Lopes <williamlopes.dev@gmail.com> escreveu:
Estou tendo um outro problema agora, eu preciso que monitore todas as chamadas. Veja este ambiente:
Eu ligo para a pessoa A, o android me alerta.
Durante essa chamada eu ligo para a pessoa B, o android não me alerta.
Se eu desligar a chamada A ou B, o android não me alerta.
Se eu desligar a outra chamada, o android me avisa.

Se durante esse processo eu recebo uma chamada, ele me avisa, mas quando ela é finalizada, continua a mesma coisa.

Ou seja, ele está me avisando apenas a primeira chamada recebida e a última finalizada, sem nenhum vínculo.
Eu tenho que monitorar todas as chamadas, preciso ter um controle de todas as que começam e terminam.

Alguém tem alguma ideia de como fazer?

Obrigado!


Em 11 de dezembro de 2012 13:32, Diogo Henrique <diogjp10@gmail.com> escreveu:
Aqui tem uma lista http://www.vogella.com/articles/AndroidBroadcastReceiver/article.html
Mais só da pra saber mesmo no Ctrl+Space no Eclipse.

Diogo Henrique
Rede Sociais: 







Em 11 de dezembro de 2012 13:08, William Lopes <williamlopes.dev@gmail.com> escreveu:
Lembrando que o início e o fim da chamada, tenho que verificar quando receber a chamada ou quando o usuário fizer a chamada.


Em 11 de dezembro de 2012 13:07, William Lopes <williamlopes.dev@gmail.com> escreveu:

Voltando no BroadCastReceiver, eu preciso interceptar esses eventos:
início de uma chamada
fim de uma chamada
início de uma conexão de dados
fim de uma conexão de dados

Quais seriam as ações e suas permissões para isso?

Esse LogCat me ajudou a resolver outro problema! Valeu!

Abraços.


Em 10 de dezembro de 2012 21:49, Diogo Henrique <diogjp10@gmail.com> escreveu:

Isso e o LogCat, procura na web que tem varias coisas a respeito dele.

Em 10/12/2012 17:29, "William Lopes" <williamlopes.dev@gmail.com> escreveu:
Muito obrigado, outra dúvida, em android existe algum comando que mostre alguma mensagem, em qualquer lugar, só para que eu saiba que o método executou?

Novamente, obrigado!


Em 10 de dezembro de 2012 17:21, Diogo Henrique <diogjp10@gmail.com> escreveu:
Aew William,

Você tem que usar um BroadCastReceiver para intercepitar uma ligação

Interrompida parace que não tem, mas o caminho e esse...




Diogo Henrique
Rede Sociais: 







Em 10 de dezembro de 2012 17:01, William Rezende <williamlopes.dev@gmail.com> escreveu:

Olá galera, já adianto que sou novo no desenvolvimento para android, venho de java para web (tapestry + hibernate).

Enfim, gostaria de descobrir como colocar um listener para chamar um método quando uma chamada for atendida e outro quando for interrompida.

Obrigado!
--
 
 

--
 
 

--
 
 
--
 
 


--
 
 

--
 
 

--
 
 

--
 
 

--
 
 

--
 
 

--
 
 

--
 
 

--
 
 

--
 
 

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário