禁用/阻止从 Android 手机访问互联网

Sar*_*idd 5 android

场景是,我正在开发一个使用互联网的 android 应用程序。这是一个商业应用程序。公司将为所有员工提供安卓手机。现在他们的要求是,他们不希望员工通过需要访问互联网的业务应用程序以外的其他方式使用互联网。

简而言之,我需要开发一个禁用互联网(wifi、移动数据等)并仅在用户使用此应用程序时允许互联网的应用程序。

这可能吗?如何实现这一目标?一项将始终检查网络连接的服务?

任何帮助表示赞赏。

更新:

我使用 BroadcastReciever,它检测连接状态并禁用 Wifi。我如何检测移动数据的连接状态,我的意思是检测移动数据连接然后相应地禁用它的意图过滤器操作是什么,我试过了

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

Rob*_*ood 0

这是不建议的事情,但如果你仍然想这样做,

在每个使用Internt的活动的onCreate中编写此代码,

WifiManager wifiManager = (WifiManager)this.context.getSystemService(Context.WIFI_SERVICE);
wifiManager.setWifiEnabled(true);
Run Code Online (Sandbox Code Playgroud)

并在该活动的 onPause 中写入,

WifiManager wifiManager = (WifiManager)this.context.getSystemService(Context.WIFI_SERVICE);
wifiManager.setWifiEnabled(false);
Run Code Online (Sandbox Code Playgroud)

这是针对 GPRS/EDGE/3G 的 WIFI 进行的,您可能必须以同样的方式启用禁用飞行模式。

更新以随时随地进行操作

每次进行任何活动时都取一个SharedPreference并放入一个,并每次将其放入每个活动的方法中。boolean isAppRunning = true in onCreate()False onDestroy()

现在,创建一个监听NETWORK_STATE_CHANGED操作的广播接收器,并在该接收器onReceive() 检查 SharedPreference 值时

如果 SP 布尔变量为 True,则让 WIFI 启用,如果为 false,则表示您的应用程序未运行,然后再次关闭 WIFI。