Ten przykładowy kod powinien działać na telefonach z systemem Android pierników i wyższy: To włączanie/wyłączanie połączenia danych
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);
}
Nie zapomnij dodać tę linię do pliku manifestu
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
Ponadto, W zależności od włączania lub wyłączania Wi-Fi:
WifiManager wifiManager = (WifiManager)this.context.getSystemService(Context.WIFI_SERVICE);
wifiManager.setWifiEnabled(status);
gdzie status może być prawdziwy lub fałszywy zgodnie z wymaganiami.
Również w manifeście:
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
Chcesz to zrobić w kodzie? Lub po prostu wyłączyć go ręcznie na swoim urządzeniu? –
w kodzie idealnie, chciałbym móc włączyć to do testu JUnit. – Classtronaut