2015-01-07 2 views
0

내 SDK가 업그레이드되어 Eclipse에서 코드를 사용하여 3G를 활성화 또는 비활성화 할 수 없습니다.3g 켜기/끄기 android 4.4 이상

이 코드는 더 이상 작동하지 않습니다.

private void setMobileDataEnabled(Context context, boolean enabled) throws 
     ClassNotFoundException, NoSuchFieldException, IllegalAccessException, 
     NoSuchMethodException, InvocationTargetException { 
    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, enabled); 
} 
+0

지금 시스템 앱에서만 할 수 있습니다. ( –

+0

Reflection == 어느 순간에 작업을 중단 할 수 있습니다. –

답변

0

응용 프로그램은 3g/4g/GPS를 자동으로 켜고 끄기로되어 있지 않습니다. 허용 된 결함이나 해결 방법이 있었지만 문제가 해결되기 때문에 신뢰할 수 없습니다.

당신이 무엇을해야, 자신의 3g 상태가 어쩌면 에 AlertDialog으로 변경해야 사용자에게 통보하고, 그들에게 그들이 할 수있는 의도를 통해 전화 설정 페이지, 를 탐색 할 수있는 옵션을 제공입니다 수동으로 3g를 활성화하십시오.