CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: Varioflex con ben 2 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 14 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 35 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 4 su 4
Discussione:

problema codice tracciamento incoming call

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Baby Droid


    Registrato dal
    Feb 2011
    Messaggi
    44

    Ringraziamenti
    0
    Ringraziato 1 volta in 1 Post
    Predefinito

    problema codice tracciamento incoming call

    Ciao a tutti,
    ho sviluppato un'applicazione che mi tiene traccia delle chiamate entranti e uscenti...
    Il tutto funziona con un servizio sempre attivo su cui ascolto il phonstate.

    Tutto funziona piuttosto bene, ma una chiamata ogni tanto (tipo ogni 20) senza che sia riuscito ad identificarne una tipologia precisa, non mi passa il numero del chiamante ( o meglio mi passa stringa vuota ).

    di seguito il codice che uso...
    codice:
    ....
    // la stringa telefono viene inizializzata a "numero nascosto";
    try{
    			
    			TelephonyManager telephonyManager=(TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
    			PhoneStateListener listener;
    			 listener = new PhoneStateListener() {
    				 
    				 int statoprecedente=TelephonyManager.CALL_STATE_IDLE;
    			       
    				 @Override
    			      public void onCallStateChanged(int state, String incomingNumber) {
    			    	  
    		        
    			        switch (state) {
    			       
    			        case TelephonyManager.CALL_STATE_IDLE:
    			        	
    	
    			        	 if (statoprecedente==TelephonyManager.CALL_STATE_OFFHOOK){
    			        		notificatelefonata("telefonata con:"+telefono,numeronotifica);
    			        		numeronotifica++;
    			        	}
    			        	 statoprecedente=TelephonyManager.CALL_STATE_IDLE;
    			        	
    			        	
    			          
    			          break;
    			        case TelephonyManager.CALL_STATE_OFFHOOK:
    			        	
    			        	statoprecedente=TelephonyManager.CALL_STATE_OFFHOOK;
    
    			          break;
    			        case TelephonyManager.CALL_STATE_RINGING:
    	
    				       if  (!(incomingNumber==null)){
    	            		   telefono = incomingNumber;}
    					       else {telefono = "numero nascosto";}
    			          
    			          statoprecedente=TelephonyManager.CALL_STATE_RINGING;
    
    			          break;
    			        }
         
    			        
    			      }
    			      
    			   };
    	    telephonyManager.listen(listener, PhoneStateListener.LISTEN_CALL_STATE);
    		
    		}catch(Exception ie){}
    il resto avviene poi gestendo la notifica che lancio con
    notificatelefonata("telefonata con:"+telefono,numeronotifica);

    C'è qualcosa che non va?
    Qualcosa sicuramente mette a "" la stringa telefono, il chè mi fa pensare che l'incomingnumber sia proprio "", ma questo avviene su telefonate su cui il cellulare mi mostra tranquillamente il numero del chiamante durante la chiamata.
    Grazie per qualsiasi aiuto.

  2.  
  3. #2
    Androidiano L'avatar di Jordano


    Registrato dal
    Nov 2010
    Località
    Reggio Emilia
    Messaggi
    263
    Smartphone
    Nexus S / HTC Magic 32a

    Ringraziamenti
    1
    Ringraziato 48 volte in 46 Posts
    Predefinito

    non ti sarebbe più semplice usare il content provider di sistema con le chiamate per fare una cosa di questo tipo?

  4. #3
    Baby Droid


    Registrato dal
    Feb 2011
    Messaggi
    44

    Ringraziamenti
    0
    Ringraziato 1 volta in 1 Post
    Predefinito

    grazie intanto per l'aiuto...
    l'idea è quella di lanciare una activity a chiamata terminata, e per questo ogni volta che ne termino una lancio una notifica da cui poi posso lanciare quell'activity...

    Per fare questo dovrei comunque stare in ascolto del callstate, e quindi se il numero lo becco già lì, non dovrei aver bisogno del content provider di sistema...
    se però è più affidabile...

    hai qualche hint/link su come recuperare il numero dell'ultima chiamata fatta?

  5. #4
    Androidiano L'avatar di Jordano


    Registrato dal
    Nov 2010
    Località
    Reggio Emilia
    Messaggi
    263
    Smartphone
    Nexus S / HTC Magic 32a

    Ringraziamenti
    1
    Ringraziato 48 volte in 46 Posts
    Predefinito

    un link non ce l'ho, ma sicuramente trovi esempi o domande di altri su google.

    per le chiamate in uscita per trovare il numero dell'ultima c'è addirittura un metodo però che ti ritorna la string con il numero.

    CallLog.Calls | Android Developers

    per le altre chiamate puoi fare una query chiedendo quello che ti interessa e poi usare il cursor che ottieni per navigare nei risultati.

LinkBacks (?)


Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy