모바일 네트워크를 켜거나 끄려면 아래 코드를 사용하고 있습니다.안드로이드 젤리에서 프로그래밍 방식으로 모바일 네트워크 연결을 켜고 끄기
final ConnectivityManager conman = (ConnectivityManager) getApplicationContext().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, ON);
이 코드를 Android 2.3.X, 4.0.X 및 4.1.X로 테스트했습니다. 2.3.X 및 4.0.X에서 작동하지만 은 4.1.X에서 실패했습니다.
Android Jelly Bean으로 테스트하는 동안 java.lang.NoSuchFieldException: mService
예외가 발생합니다.
내 문제의 해결책이 있습니까? 매니페스트 파일에 필요한 모든 권한을 추가했습니다.
휴대 전화를 뿌리 내려야하지 않습니까? –
다른 네트워크가 필요하거나 비 연결 모드로 작업하고 싶은 경우 모르겠지만 비행기 모드에 대해 생각해 보셨습니까? – lithos35