Я пытаюсь кнопку, как это создать (Если мобильная сеть включена зелен, когда он выключен, он серый):Android. Как подключить/выключить мобильный интернет (сеть передачи данных)?
Я пытаюсь определить состояние с помощью этого метода:
public Boolean isDataNetworkEnabled() {
ConnectivityManager conMgr = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
if (conMgr.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED
|| conMgr.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTING) {
return true;
}
if (conMgr.getNetworkInfo(0).getState() == NetworkInfo.State.DISCONNECTED
|| conMgr.getNetworkInfo(1).getState() == NetworkInfo.State.DISCONNECTED) {
return false;
}
return false;
}
Он всегда возвращает значение «false». Даже если после включения мобильной сети. Собственно, как определить состояние мобильной сети?
PS. Я не спрашиваю, как включить/отключить мобильную сеть, я спрашиваю о состоянии. Я уже нашел, как включить/выключить:
try {
Method dataMtd = ConnectivityManager.class.getDeclaredMethod("setMobileDataEnabled", boolean.class);
if (!isDataNetworkEnabled()) {
dataMtd.invoke(dataManager, true);
ivDataNetwork.setImageResource(R.drawable.ic_data_usage_black_48dp);
Toast.makeText(context, "Data network turned on", Toast.LENGTH_SHORT).show();
} else {
dataMtd.invoke(dataManager, false);
ivDataNetwork.setImageResource(R.drawable.ic_data_usage_grey600_48dp);
Toast.makeText(context, "Data network turned off", Toast.LENGTH_SHORT).show();
}
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
Убедитесь, что <использует-разрешение андроида: имя = «android.permission.ACCESS_NETWORK_STATE» /> в манифесте. –
@Ashton, у меня есть эти разрешения: uses-permission> use-permission> –