모바일 데이터를 프로그래밍 방식으로 사용하도록 설정 한 코드가 있지만 애플리케이션을 시작할 때 토글 버튼이 켜지지 않습니다 (이전에 모바일 데이터가 켜져 있음 - 버튼이 제대로 작동하는지 확인하기 위해 만 사용) . 응용 프로그램을 시작하기 전에 모바일 데이터가 켜져 있지 않으면 버튼이 제대로 작동한다고 말씀 드리고 싶습니다.토글 버튼이 켜져 있지 않습니다.
gprs.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
try {
turnData(isChecked); //Klasa za ukljucivanje gprsa
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
그리고 클래스 :
이 코드는 토글 버튼입니다
void turnData(boolean ON) throws Exception {
Log.i("version:", "Found Gingerbread+");
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);
}
편집 : WiFi를 매우 간단하지만, 모바일 데이터에 대해 나는 토글
에없는 이유를 잘 모릅니다wifiManager = (WifiManager)this.getSystemService(Context.WIFI_SERVICE);
wifi.setChecked(wifiManager.isWifiEnabled());
wifi.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
wifiManager.setWifiEnabled(isChecked);
}
});
처음에 Activity의 onCreate() 메소드에서'toggleButton.setChecked()'를 추가 할 수 없습니까? – g00dy
만약 내가 gprs.setChecked()를 만들면 setChecked (boolean)가 필요하다는 것을 알 수 있습니다. isInternetPresent 또는 false를 호출합니다. 나는 둘 다 시도했지만 아무것도 바뀌지 않았다 ... –
오, 인터넷 연결이되어 있는지 확인하고 싶지 않다면 체크하지 말고 - 그렇다. 확실하게'onCreate()'를 확인하는 것이 좋다. – g00dy