2013-08-30 3 views
2

네트워크 연결이 필요한 간단한 앱을 개발하고 있습니다. 앱이 시작되고 Wi-Fi 연결이없는 경우 두 가지 옵션, 즉 을 사용하여 모달 대화 상자를 표시하려고합니다. 1) Wi-Fi를 사용하거나 2) 애플리케이션을 종료합니다.Android : Wi-Fi를 사용하도록 설정하거나 앱을 종료하도록 사용자에게 요청합니다.

문제는 '앱 닫기'버튼을 클릭하면 애플리케이션을 닫기 위해 호출 할 수있는 Android 메소드를 찾을 수 없다는 것입니다.

내가 아직 발견하지 못한 방법이 있습니까? 또는이 전체 유스 케이스를 처리 할 수있는 더 좋은 방법이 있습니까?

+0

close app? 메소드는 'finish()'입니까? – Sieryuu

답변

0

이 링크는 당신을 도울 수 있습니다 :

1

2

행운을 빕니다! 여기

당신은 종료의 의견에 대해 생각해야

0

는, 당신은 더 와이파이가없는 것을 말할 수있는 앱 SO Answer

을 Quiting에 대한 좋은 대답이다.

그냥이 같은 AlerDialog을한다면 :

AlertDialog.Builder builder = new AlertDialog.Builder(this); 
       builder.setTitle("Hint" 
         .setMessage("No WiFi!" 
         .setPositiveButton("OK", null).show(); 

아니면 토스트 같은 :

Toast.makeText(yourActivity.this, "No WiFi!", Toast.LENGTH_LONG).show(); 

당신이 연결를 확인하기 위해 whant 경우, 당신이 할 수있는 다음 스 니펫 사용 :

public boolean isOnline() { 
     // check if an internet connection is present 
     ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo netInfo = cm.getActiveNetworkInfo(); 
     if (!(netInfo != null && cm.getActiveNetworkInfo().isAvailable() && cm 
       .getActiveNetworkInfo().isConnected())) { 
      return false; 
     } 
     return true; 
    } 
1

무선 랜 속도를 확인하기위한 시뮬레이터 코드가 있습니다. 이 도움 여부 참조하십시오

private boolean haveNetworkConnection() { 
      final ConnectivityManager conMgr = (ConnectivityManager) getSystemService (Context.CONNECTIVITY_SERVICE); 
      if (conMgr.getActiveNetworkInfo() != null && conMgr.getActiveNetworkInfo().isAvailable() && conMgr.getActiveNetworkInfo().isConnected()) { 
        return true; 
      } else { 
        System.out.println("Internet Connection Not Present"); 
       return false; 
      } 
} 

그리고 에이 버튼을 클릭 사용이 코드의 응용 프로그램를 종료 :

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    TextView text= (TextView) findViewById(R.id.TV); 

    ConnectivityManager connectivityManager =(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo info = connectivityManager.getActiveNetworkInfo(); 

    if (info == null || 
      !connectivityManager.getBackgroundDataSetting()) { 
     // No Network detected 
     findViewById(R.id.quit).setVisibility(View.VISIBLE); 
     findViewById(R.id.quit).setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       finish(); 
      } 
     }); 
     //return; 
    }else { 
     int netType = info.getType(); 
     int netSubtype = info.getSubtype(); 
     if (netType == ConnectivityManager.TYPE_WIFI) { 
      //WIFI DETECTED 
      WifiManager wifiManager = (WifiManager)this.getSystemService(Context.WIFI_SERVICE); 
      WifiInfo wifiInfo = wifiManager.getConnectionInfo(); 

      int linkSpeed = wifiInfo.getLinkSpeed(); //measured using WifiInfo.LINK_SPEED_UNITS 
      text.setText("Connection is wifi and the speed is "+Integer.toString(linkSpeed)); 


     } else if (netType == ConnectivityManager.TYPE_MOBILE 
       && netSubtype >2) { 
      text.setText("connection is 3g"); 
     } else { 
      text.setText("connection is 2g"); 

     } 


    } 
} 

}

+0

감사합니다. finish()를 사용하여 앱의 첫 번째 활동을 종료했습니다. 앱이 종료됩니다. (나는 생각한다) – mahela007

3

인터넷 연결 사용이 코드를 확인하려면 :

 Intent intent = new Intent(Intent.ACTION_MAIN); 
     intent.addCategory(Intent.CATEGORY_HOME); 
     startActivity(intent); 

시도해보십시오.

0

문제가 응용 프로그램을 닫고있는 것으로 알고 있습니다. 맞습니까? finish();을 사용해 보셨습니까?