Autore Topic: app per monitorare stato e eventi del dispositivo per studio  (Letto 424 volte)

Offline BruceAndDevIT

  • Nuovo arrivato
  • *
  • Post: 12
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    lg l5
  • Sistema operativo:
    windows seven
app per monitorare stato e eventi del dispositivo per studio
« il: 20 Gennaio 2015, 16:55:36 CET »
0
salve

vorrei realizzare una app che logga (solo per studio e per capire come funziona android)
stato dispositivo e eventi sullo stesso (tipo creazione nuova voce in rubrica etc)

ho letto un sacco di articoli in rete in merito poi mi sono imbattuto in questo progetto

https://github.com/ViliusKraujutis/AndroidBroadcastsMonitor

ho scaricato e aperto il progetto per cercare di capire come fare e come funziona il tutto

ed ho visto che l'autore del codice


crea un servizio per registrare tutti i broadcast leggendoli da un file xml in tutto il sistema
non riesco a capire la necessità di creare un servizio in quanto un broadcast una volta registrato
funziona anche senza servizi

e come avviare o fermare un servizio possa far si che fermi la ricezione degli eventi.


altra domanda:

se il meccanismo dei broadcast non basta per le mie necessità tipo eventi non gestiti con i broadcast (non se se è possibile premetto), in questo caso devo per forza creare un servizio e mettermi in ascolto su un determinato evento con uno snipcode simile a questo ?

Codice (Java): [Seleziona]
public class MyLogService extends IntentService
{
    public MyLogService()
    {
        super("MyLogService");
       
       TelephonyManager telephonyManager =
       (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);
       telephonyManager.listen(new MyPhoneStateListener(),PhoneStateListener.LISTEN_CALL_STATE);                                                       
       
        Log.i("PROVA SERVICE", "Constructor Service");
    }
.....

package com.example.hello_rev_1;

import android.content.Context;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.util.Log;

public class MyPhoneStateListener extends PhoneStateListener
{
        MyDBManager m_db;
       
        public MyPhoneStateListener(MyDBManager db) {
                super();
                // TODO Auto-generated constructor stub
               
                m_db=db;
        }      
       
    public void onCallStateChanged(int state, String incomingNumber)
    {
         
        switch(state)
        {
           case TelephonyManager.CALL_STATE_RINGING:
                Log.d("PROVA SERVICE",   "SQUILLO DA "+incomingNumber);
                //m_db.save("Stato chiamate", "chiamata "+incomingNumber,"chiamata "+incomingNumber);
                break;
           case TelephonyManager.CALL_STATE_OFFHOOK:
               Log.d("PROVA SERVICE",   "RISPOSTO");
               //m_db.save("Stato chiamate", "chiusa chiamata "+incomingNumber,"chiusa chiamata "+incomingNumber);
               break;
               
           case TelephonyManager.CALL_STATE_IDLE:
                   Log.d("PROVA SERVICE",   "CHIUSO");
               //m_db.save("PROVA SERVICE", "State indle","State indle");
        }
               
    }
   
}