2013-03-13 3 views
1

gggs라는 ToggleButton이 있습니다. 나는 그것이 gprs를 켜고 끌 필요가있다. 그것을 성취하는 방법? 나는 here을 보았지만 errros를 주었고 내 경우에 그것을 사용하는 방법을 알아 내지 못합니다.토글 버튼으로 gprs를 켜고 끄는 방법?

+0

어떤 오류가 발생합니까? – 323go

+0

해당 권한을 추가 했습니까? – Nezam

+0

확인하기 http://stackoverflow.com/questions/11555366/enable-disable-data-connection-in-android-programmatically – Piyush

답변

0

좋아, 내가 토글 버튼을 사용하여 동일한 문제가있는 경우 여기에 솔루션을 게시합니다.

private boolean isNetworkConnected() { 
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo ni = cm.getActiveNetworkInfo(); 
    if (ni == null) { 
     // There are no active networks. 
     return false; 
    } else 
     return true; 
    } 
} 
: 첫 번째 내 활동의 일부 코드가 GPRS를 켜거나 꺼져 있으면 .... 확인 귀하의에서 onCreate 방법 위에 배치에 추가, 그리고

public class GprsSettings { 

    static void setMobileDataEnabled(Context context, boolean enabled) { 
     try { 

      final ConnectivityManager conman = (ConnectivityManager) context.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, enabled); 
      Log.i("setMobileDataEnabled()","OK"); 
     } 

     catch (Exception e) 
     { 
      e.printStackTrace(); 
      Log.i("setMobileDataEnabled()","FAIL"); 
     }   
    } 
} 

: 우선은 GPRS 설정에 대한 분리 된 클래스를 생성 그것을의 매력처럼 작동

gprs.setOnClickListener(new OnClickListener() { 

    public void onClick(View v) { 
     try { 
      if (((ToggleButton)v).isChecked()) { 
       GprsSettings.setMobileDataEnabled(getApplicationContext(), true); 
       Toast.makeText(getApplicationContext(), "GPRS is ON", Toast.LENGTH_LONG).show(); 
      }else{  
       GprsSettings.setMobileDataEnabled(getApplicationContext(), false); 
       Toast.makeText(getApplicationContext(), "GPRS is OFF", Toast.LENGTH_LONG).show(); 
      } 
     } 
     catch (Exception localException) { 
      Log.e("SwarmPopup", "error on GPRS listerner: " + localException.getMessage(), localException); 
     } 
    } 
}); 
gprs.setChecked(isNetworkConnected()); 

:

그런 다음 내 활동에 나는 토스트와 토글 버튼이 코드를 사용했다.

+0

사실 매력처럼 작동하지 않습니다. 작동하지만 gprs 버튼은 내 전화기의 gpr이 꺼져 있지만 무선이 켜져 있어도 켜져 있습니다. : (( – user2083882

관련 문제