2012-06-25 17 views
6

Gibt es eine Möglichkeit, Änderungen der Signalstärke auf dem Android-Emulator zu simulieren. Ich habe eine phonestatelistener Protokollierungssignalstärke in meiner App. Ich benutze auch telnet zum Emulator und Befehle wie GSM-Signal 5 5, aber ich bekomme 99 als meine rssi Signalstärke und -1 als Bitfehlerrate.Android Emulator Signalstärke

+0

Möchten Sie speziell die Signalstärke ändern oder die Geschwindigkeit der Netzwerkverbindung drosseln? – hwrdprkns

+0

Ändern Sie die Signalstärke, ich verstehe einfach nicht, warum es ein GSM-Signal Befehl in Telnet, die nicht mit dem Emulator arbeiten scheint. – MEURSAULT

Antwort

0

Ich glaube nicht, dass es im Emulator möglich ist.

Source

+0

Ich habe diesen Link auch, als ich google suchte. Wenn Sie jedoch mit dem Emulator telnet und eine Liste erstellen, gibt es einen Befehl namens GSM-Signal. Bedeutet das, dass dieser Befehl nur auf Geräten funktioniert? Ich dachte, der ganze Sinn der Telnet-Befehle sei es, Geräteänderungen zu simulieren ... – MEURSAULT

+0

Korrekt, es ist wahrscheinlich für verschiedene Geräte, die unterschiedliche Leistung (dB) Bewertungen für verschiedene Netzwerke haben. Es könnte schwieriger sein, so etwas auf einem Emulator zu implementieren. – hwrdprkns

+0

Sie können natürlich den Emulator patchen, um zu tun, was Sie wollen ... Es wäre ein ziemlich einfacher Hack, die API einen Wert von einer Eigenschaft oder sogar einer Datei irgendwo auf der Datenpartition stecken zu lassen. Die meiste Arbeit würde nur eingerichtet werden, um es neu zu erstellen (oder den Patch zu machen, ohne das Ganze neu aufzubauen). Es könnte einfacher sein, die API nur in Ihrem Code zu verpacken und einmal auf einem echten Gerät zu testen - vielleicht versuchen Sie, einen antistatischen Beutel als marginalen Faraday-Käfig zu verwenden. –

1

Ich denke, es ist eine gute Idee, mit Schnittstelle in solchen Fällen

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

Erstellen Sie einige Dummy-Klasse für spöttische, verspotten und es dann zu echten Arbeiterklasse zu ändern.

class MockSignal implements SignalInformation{ 

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

Nun, ich hoffe, Sie haben die Idee.