首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Android模拟器中禁用/启用网络,切换到Wifi?

如何在Android模拟器中禁用/启用网络,切换到Wifi?
EN

Stack Overflow用户
提问于 2010-06-09 11:15:51
回答 5查看 51.2K关注 0票数 30

我正在开发一个用于Android的推送通知库(http://deaconproject.org/),它需要在网络连接中断或更改时采取措施-也就是说,它需要重新启动服务器连接或暂停其操作,直到网络连接可用。在"android.net.ConnectivityManager.CONNECTIVITY_ACTION".上使用Android BroadcastReceiver似乎可以很好地工作。

我的问题是在测试库时-我想自动测试库在各种配置条件下对断开的网络连接或从3G到WiFi的转换的响应。问题是,我不想整天坐在模拟器前敲F8。

有没有一种方法可以在jUnit测试中以编程方式操作安卓上的网络连接,而不需要切换飞行模式?我已经尝试通过控制台向模拟器发出命令,操纵GSM模式等,但当显示器上的电话状态发生变化时,互联网连接仍然有效。

EN

Stack Overflow用户

发布于 2013-11-29 07:42:06

一个简单,但有点冗长和沉重的解决方案是在你的wifi连接状态监视器上添加一个抽象层。

添加一个实体(NetworkStateManager),它应该是一个应用程序作用域的单例(参见RoboGuice或Dagger到这一点,或者通过你的应用程序实例访问唯一的实例)。

使用可观察的观察者设计模式,向此实体添加注册和注销侦听器的方法。

每个活动都必须在onStart期间注册,在onStop中注销。

实体本身将由BroadCastReceiver修改。

这是完全可测试的,如果您使用DI框架,您将能够将可驱动存根注入到您的活动中,并查看它们对网络状态变化的反应。

票数 0
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3002886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档