【问题标题】:Android emulator signal strength安卓模拟器信号强度
【发布时间】:2012-06-26 14:16:10
【问题描述】:

有什么方法可以在安卓模拟器上模拟信号强度的变化。 我的应用中有一个 phonestatelistener 记录信号强度。我还在模拟器上使用 telnet 和 gsm signal 5 5 之类的命令,但我的 rssi 信号强度一直是 99,误码率是 -1。

【问题讨论】:

  • 您是想改变信号强度还是降低网络连接速度?
  • 更改信号强度,我只是不明白为什么 telnet 中的 gsm 信号命令似乎不适用于模拟器。

标签: android android-emulator


【解决方案1】:

我认为在这种情况下使用接口模拟是个好主意

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

创建一些用于模拟的虚拟类,然后将其更改为真正的工作类。

class MockSignal implements SignalInformation{

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

好吧,我希望你明白了。

【讨论】:

    【解决方案2】:

    我认为在模拟器中是不可能的。

    Source

    【讨论】:

    • 我在谷歌搜索时也得到了那个链接。但是,如果您 telnet 到模拟器并执行列表,则会有一个名为 gsm 信号的命令。这是否意味着此命令仅适用于设备?我认为 telnet 命令的全部意义在于模拟设备更改......
    • 正确,可能是针对不同网络的不同设备具有不同的功率 (dB) 额定值。在模拟器上实现这样的东西可能会更难。
    • 你当然可以修补模拟器来做任何你想做的事情......让 API 从属性返回一个值,甚至是一个卡在数据分区某处的文件,这将是一个相当简单的 hack .大部分工作只是设置以重建它(或在不重建整个事物的情况下进行补丁)。不过,将 api 封装在代码中并在真实设备上测试一次可能会更简单——也许可以尝试使用防静电袋作为边缘法拉第笼。
    • 只是出于好奇,如何修补模拟器来做这样的事情(我可能最终会在我自己的类中克隆功能以在模拟器和钩子上进行测试虽然在设备上时由真正的听众决定)。仍然只是想知道。
    猜你喜欢
    • 2015-10-25
    • 2015-05-12
    • 2011-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多