Autore Topic: Rilevare RSSI della cella  (Letto 687 volte)

Offline giovo87

  • Nuovo arrivato
  • *
  • Post: 4
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    samsung galaxy s
Rilevare RSSI della cella
« il: 22 Dicembre 2011, 16:55:02 CET »
0
Salve a tutti.

Mi trovo di fronte a questo problema: dovrei prelevare il valore della potenza del segnale ricevuto dalla cella.

Ho un Samsung Galaxy S e dopo alcune ricerche ho visto che con i samsung non si puo' utilizzare l'oggetto NeigboringCellInfo (con il quale sarebbe stato possibile rilevare il parametro RSSI).

Oltre al parametro RSSI per la mia applicazione mi interessano Latitudine, Longitudine e CellID...per questo chiamo periodicamente la requestLocationUpdates per prelevare le coordinate geografiche e nelle onLocationChanged oltre a fare questo, prelevo anche il CellID (che lo ricavo senza problemi) e dovrei prelevare anche il RSSI (che pero' non potendo usare la NeigboringCellInformation non so come fare).


Qualcuno puo' darmi una mano?


Grazie!

Offline alexAndroid

  • Utente normale
  • ***
  • Post: 185
  • Respect: +27
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Giò
  • Sistema operativo:
    Ubuntu 11.10; Windows XP
Re:Rilevare RSSI della cella
« Risposta #1 il: 27 Dicembre 2011, 19:42:19 CET »
0
Se ti serve sapere qual'è la potenza del segnale allora devi usare la classe TelephonyManager e PhoneStateListener
Sei stato aiutato oppure il tuo problema è stato risolto? Allora premi il tasto THANKS E' un modo utile e carino per ringraziare chi ti è stato di aiuto.

Offline alexAndroid

  • Utente normale
  • ***
  • Post: 185
  • Respect: +27
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Giò
  • Sistema operativo:
    Ubuntu 11.10; Windows XP
Re:Rilevare RSSI della cella
« Risposta #2 il: 28 Dicembre 2011, 16:10:05 CET »
0
Codice (Java): [Seleziona]
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        startSignalListener();
}

private void startSignalListener() {
        TelephonyManager telephonyManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
        int events = PhoneStateListener.LISTEN_SIGNAL_STRENGTHS;
        telephonyManager.listen(phoneStateListener, events);
}

private void stopListening() {
        TelephonyManager telephonyManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
        telephonyManager.listen(phoneStateListener, PhoneStateListener.LISTEN_NONE);
    }

   /*
     * Definizione personalizzata di un phoneStateListener con Override dei metodi predefiniti
     * Il range di segnale va da 0 a 31
     */

    private PhoneStateListener phoneStateListener = new PhoneStateListener() {

//Segnale da 0 a 31
        @Override
        public void onSignalStrengthChanged(int asu) {
                Log.i("DetectCalls", "onSignalStrengthChanged " + asu);
                super.onSignalStrengthChanged(asu);
        }
}
« Ultima modifica: 28 Dicembre 2011, 16:13:40 CET da alexAndroid »
Sei stato aiutato oppure il tuo problema è stato risolto? Allora premi il tasto THANKS E' un modo utile e carino per ringraziare chi ti è stato di aiuto.