2012-06-09 36 views
4

这种情况是,我正在开发一个使用互联网的android应用程序。这是一个商业应用程序。该公司将向所有员工提供Android手机。现在他们的要求是,他们不希望员工通过其他方式使用互联网,而不是通过需要访问互联网的商业应用程序。禁用/禁止从Android手机上网

总之,我需要开发一个应用程序,禁用互联网(wifi,移动数据等),并允许互联网只有当用户使用这个应用程序。

这可能吗?如何实现这一目标?一种始终保持对网络连接性的检查的服务?

任何帮助表示赞赏。

UPDATE:

进出口使用BroadcastReciever,检测连接状态,并禁用无线网络连接。我如何可以检测移动数据连接状态,我的意思是意图筛选器操作来检测移动数据连接,然后相应地禁用它,我已经尝试

<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>

+5

旁边注:天哪,这是多么严酷。有些公司如此运作令人惊奇。 – Flukey

+0

不认为这是可能的,因为虽然你的应用程序正在使用互联网电话用户可以切换到另一个应用程序来使用互联网服务 – sanu

+0

嗯,这是我真正想要管理的!就像onPause()我可以播出一个动作,将禁用互联网。 –

回答

0

这不是suggestable的东西,但如果你仍然要做到这一点,在使用Internt的编写代码的每一项活动的onCreate

WifiManager wifiManager = (WifiManager)this.context.getSystemService(Context.WIFI_SERVICE); 
wifiManager.setWifiEnabled(true); 

,并在activty写的onPause,

WifiManager wifiManager = (WifiManager)this.context.getSystemService(Context.WIFI_SERVICE); 
wifiManager.setWifiEnabled(false); 

这是为GPRS/EDGE/3G的WIFI做的,你可能必须启用停用飞行模式的方式。

UPDATE TO DO IT从各处

一个SharedPreference,把一个boolean isAppRunning = true每次带您去您的任何活动in onCreate()并把False每次在每个活动的onDestroy()方法。现在

创建一个广播接收器是listend到NETWORK_STATE_CHANGED行动,并在接收器的onReceive()检查为SharedPreference值

如果SP布尔变量为真,那么让WIFI得到enabaled,如果它是假的意味着你的应用程序没有运行,然后再次关闭WIFI。

+0

用户可以轻松启用它!这个程序如何禁用互联网4rm evrywhere –

+1

非常感谢!检查我的更新,我做了同样的,它的工作原理,谢谢你解释它更好 –