public static void setMobileDataEnabled(Context context, Boolean sw) {
try {
final ConnectivityManager conman = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
final Class conmanClass = Class.forName(conman.getClass().getName());
final Field connectivityManagerField = conmanClass.getDeclaredField("mService");
connectivityManagerField.setAccessible(true);
final Object connectivityManager = connectivityManagerField.get(conman);
final Class connectivityManagerClass = Class.forName(connectivityManager.getClass().getName());
final Method setMobileDataEnabledMethod = connectivityManagerClass.getDeclaredMethod("setMobileDataEnabled", Boolean.TYPE);
setMobileDataEnabledMethod.setAccessible(true);
setMobileDataEnabledMethod.invoke(connectivityManager, sw); //여기서 true, false로 on/off
} catch (Exception e){
e.getStackTrace();
}
}
데이터 네트워크 온 오프를 코드 상에서 자유롭게 하고 싶어서 구글 검색 결과, 위와 같은 코드를 얻게 되었습니다.
물론 아래와 같이 퍼미션 설정까지 했으며 현재 킷캣(4.4)과 아이스크림(4.0)에서 테스트를 하고 있습니다.
ACCESS_NETWORK_STATE, CHANGE_NETWORK_STATE, MODIFY_PHONE_STATE
그리고 이 기능을 따로 테스트 한답시고 현재 MainActivity와 이 Code가 들어있는 자바 Class로만 구성되어있으며
MainActivity에는 버튼 하나가 있어 이를 한번 누르면 현재 데이터 연결 상태에 따라
데이터 네트워크 연결/비연결을 하게 됩니다.
그런데 위의 코드가 작동을 하지 않네요... 도와주세요 ㅠㅠ