2012-06-25 15 views
6

Esiste un modo per simulare i cambiamenti nella potenza del segnale sull'emulatore Android. Nella mia app ho una potenza del segnale di registrazione phonestatelistener. Sto anche usando telnet all'emulatore e comandi come gsm signal 5 5, ma continuo a ricevere 99 come la potenza del segnale rssi e -1 come il bit error rate.Potenza del segnale dell'emulatore Android

+0

Stai cercando specificamente di modificare l'intensità del segnale o di soffocare la velocità della connessione di rete? – hwrdprkns

+0

cambia la potenza del segnale, semplicemente non capisco perché c'è un comando di segnale GSM in telnet che sembra non funzionare con l'emulatore. – MEURSAULT

risposta

0

Non credo sia possibile farlo nell'emulatore.

Source

+0

Ho ottenuto il link anche quando ho cercato su google. Tuttavia, se si telnet all'emulatore e si fa una lista, esiste un comando chiamato segnale gsm. Significa che questo comando funziona solo sui dispositivi? Ho pensato che l'intero punto dei comandi telnet fosse di simulare i cambiamenti del dispositivo ... – MEURSAULT

+0

Corretto, probabilmente è per diversi dispositivi che hanno diverse potenze (dB) per diverse reti. Potrebbe essere più difficile implementare qualcosa di simile su un emulatore. – hwrdprkns

+0

Ovviamente è possibile applicare una patch all'emulatore per fare tutto ciò che si desidera ... sarebbe un trucco abbastanza semplice rendere l'API restituire un valore da una proprietà o persino un file bloccato da qualche parte nella partizione dati. La maggior parte del lavoro dovrebbe essere configurata per ricostruirla (o fare la patch senza ricostruire il tutto). Potrebbe essere più semplice avvolgere l'api all'interno del tuo codice e testarlo una volta su un dispositivo reale, magari provare a utilizzare un sacchetto antistatico come gabbia marginale di un giorno. –

1

penso che sia una buona idea prendere in giro con l'interfaccia in questi casi

interface SignalInformation{ 
    float signalStrength(); 
    //etc... 
} 

Creare una classe fittizia per beffardo, e poi modificarlo in classe operaia vera.

class MockSignal implements SignalInformation{ 

    public float signalStrength(){ 
     return 3.5; //or whatever behaviour you want (i.e. random number) 
    } 
} 

Bene, spero che tu abbia avuto l'idea.

Problemi correlati