마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

도와주세요ㅠ 3G(또는 4G) 데이터 네트워크 온/오프

0 추천
    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에는 버튼 하나가 있어 이를 한번 누르면 현재 데이터 연결 상태에 따라

데이터 네트워크 연결/비연결을 하게 됩니다.

그런데 위의 코드가 작동을 하지 않네요... 도와주세요 ㅠㅠ

Gwondori (120 포인트) 님이 2015년 8월 30일 질문

1개의 답변

0 추천
안드로이드 버전이 올라가면서 일반앱은 할 수 없게 막혔을 겁니다.

3G/LTE를 on/off 하는 OS 환경설정화면을 띄우세요.
익명사용자 님이 2015년 8월 31일 답변
...