我正在试图找出如何启动没有数据连接或飞行模式的模拟器,任何一个都可以工作。我测试我的应用程序防止数据丢失,但我需要将其雾化。因此,我试图通过命令行启动没有数据的模拟器,或者编写bash脚本来启动模拟器,关闭数据,然后运行单元测试。
已解决 - 每份建议书
#! /usr/bin/expect
set timeout 10
spawn telnet localhost 5554
expect "OK"
send "gsm data off\n"
send "quit\n"
答案 0 :(得分:1)
快速而肮脏的方法可能是创建一个在启动时启动并关闭数据的应用程序,然后运行模拟器并安装应用程序。但这确实存在不一致的可能性。
你可以做的另一件事就是在没有网络的情况下离开模拟器是telnet into the emulator并关闭数据。为了实现自动化,我使用批处理文件和vbscript创建了一个简单(粗略)的示例,以便在我的工作机器运行Windows时为telnet提供命令。
批处理文件:
@echo off
emulator -avd YOURAVDNAMEHERE
timeout /t 10
telnet_turn_data_off.vbs
telnet_turn_data_off.vbs
:
set oShell=CreateObject("WScript.Shell")
oShell.Run "telnet localhost 5554", 9
WScript.sleep 500
oShell.Sendkeys "gsm data off{ENTER}"
WScript.sleep 500
oShell.Sendkeys "gsm voice off{ENTER}"
WScript.sleep 500
oShell.Sendkeys "quit{ENTER}"
WScript.sleep 500
oShell.Sendkeys "quit{ENTER}"
WScript.sleep 500
如果在Linux或Mac OS上运行,expect应该能够编写telnet脚本(正如编辑问题所示)。
值得注意的是,在较旧的仿真器(例如2.2)上,turning data off might not do anything。我上面的例子是用4.2模拟器测试的,它似乎正确地切断了数据。
答案 1 :(得分:0)
我通常使用物理硬件进行测试而不是模拟器,但如果找不到启用飞行模式的选项,则可以在启动模拟器之前将计算机与互联网断开连接。您的计算机没有互联网=您的模拟器没有互联网。
答案 2 :(得分:0)
使用以下步骤..
转到Eclipse
Window-> show view-> other-> android-> Devices 现在选择正在运行的模拟器并再次
转到,
Window-> show view-> other-> android-> Emulator Control 现在在那个..设置数据从主页取消注册
来自设备和模拟器
在设备或模拟器中转到,
设置 - >无线&网络 - >飞行模式 - >确定