在Android中暂时禁用互联网访问?

Cla*_*aut 7 testing android

我想设置一个测试,看看我的代码是否在没有互联网访问时正常工作.有没有办法暂时关闭互联网访问测试?

我试着环顾四周,但我找不到它.

Lin*_*vel 6

此代码示例应适用于运行gingerbread及更高版本的Android手机:此启用/禁用数据连接

private void setMobileDataEnabled(Context context, boolean enabled) {
   final ConnectivityManager conman = (ConnectivityManager)  context.getSystemService(Context.CONNECTIVITY_SERVICE);
  final Class conmanClass = Class.forName(conman.getClass().getName());
  final Field iConnectivityManagerField = conmanClass.getDeclaredField("mService");
  iConnectivityManagerField.setAccessible(true);
  final Object iConnectivityManager = iConnectivityManagerField.get(conman);
  final Class iConnectivityManagerClass = Class.forName(iConnectivityManager.getClass().getName());
  final Method setMobileDataEnabledMethod = iConnectivityManagerClass.getDeclaredMethod("setMobileDataEnabled", Boolean.TYPE);
  setMobileDataEnabledMethod.setAccessible(true);
  setMobileDataEnabledMethod.invoke(iConnectivityManager, enabled);
}
Run Code Online (Sandbox Code Playgroud)

不要忘记将此行添加到清单文件中

<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
Run Code Online (Sandbox Code Playgroud)

另外,我知道启用或禁用wifi:

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

根据要求,状态可能为真或假.

同样在清单:

<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
Run Code Online (Sandbox Code Playgroud)