Tecnologia do Blogger.
RSS

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

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