首页 文章

从Android手机禁用/阻止Internet访问

提问于
浏览
4

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

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

这可能吗?怎么做到这一点?一项始终检查网络连接的服务?

任何帮助表示赞赏 .

UPDATE:

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

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

1 回答

  • 0

    这是不可取的,但如果你仍然想这样做,

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

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

    并在onPause的那个活动写,

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

    这是为GPRS / EDGE / 3G的WIFI做的,您可能需要以相同的方式启用禁用飞行模式 .

    UPDATE TO DO IT FROM EVERYWHERE

    拿一个 SharedPreference 并在每次进行任何活动 in onCreate() 时放一个 boolean isAppRunning = true ,并在每个活动的 onDestroy() 方法中每次都放置 False .

    现在, Create one broadcast receiver 监听 NETWORK_STATE_CHANGED 动作并在接收者的 onReceive() 中检查SharedPreference值,

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

相关问题