2013-10-08 1 views
1

응용 프로그램을 시작하기 전에 인터넷 연결을 확인하는 방법을 알고 싶습니다. 응용 프로그램 목록에서 응용 프로그램 버튼을 클릭하면이 응용 프로그램을 시작하기 전에 대화 상자를 인터넷에 연결하거나 인터넷에 연결하십시오.응용 프로그램이 시작될 때 인터넷 연결을 확인하는 방법

나는 이것을 시도했지만 나는 할 수 없었다.

아무도 도와 줄 수 있습니까?

답변

0
public boolean isNetworkAvailable(Context ct) 
{ 
    ConnectivityManager connectivityManager = (ConnectivityManager) ct.getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); 
    return activeNetworkInfo != null; 
} 

여기에 문맥을 보냅니다. 인터넷이있는 경우 다른 진정한거짓

2

이 시도 반환합니다

public boolean isNetworkAvailable(Context context) 
    { 
     ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); 
     return activeNetworkInfo != null; 
    } 

당신은 당신의 첫번째 활동의에서 onCreate에서이 문제를 호출해야합니다, 또는 당신이 정말로 모든 길을 갈하려는 경우 응용 프로그램을 덮어 쓸 수 있고 거기에서 호출 할 수 있습니다 (활동에서 연결해야합니다).

희망이 도움이됩니다.

+0

. NetworkInfo.isConnected()를 사용하여 네트워크가 연결되어 있는지 확인합니다. http://android.codota.com/scenarios/51891727da0a4288a823cbdc/android.net.ConnectivityManager?tag=out_2013_05_05_07_19_34 – drorw

0

이 시도 :

public static boolean isOnline(Context ctx) { 

    NetworkInfo info = (NetworkInfo) ((ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo(); 
    if (info == null && !info.isConnected()) { 
     return false; 
    } 
    if (info.isRoaming()) { 
     return false; 
    } 
    return true; 
} 
0

를 사용하여 다음 코드를.

package com.example.app; 

import android.content.Context; 
import android.net.ConnectivityManager; 
import android.net.NetworkInfo; 


public class ConnectionManager { 

    private Context context; 

    public ConnectionManager(Context context){ 
     this.context = context; 
    } 
    public boolean isConnectingToInternet(){ 

     ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo[] info = cm.getAllNetworkInfo(); 
     if (info != null){ 
      for (int i = 0; i < info.length; i++){ 
       if (info[i].getState() == NetworkInfo.State.CONNECTED){ 
        return true; 
       } 
      } 
     } 
     return false; 
    } 
} 

다음과 같이 MainActivity에 isConnectingToInternet을 부릅니다. 1 단계

ConnectionManager cm = new ConnectionManager(this); 

boolean connection = cm.isConnectingToInternet(); 
+0

안녕하세요, 일단 내 Wi-Fi에 연결하면이 메소드는 true를 반환하지만 사용할 수있는 인터넷 연결이 없습니다. 네트워크가 실제로 사용 가능한지 어떻게 감지합니까? –

+0

그런 다음 인터넷 연결의 가용성을 지속적으로 확인하는 백그라운드에서 isConnectingToInternet() 메서드를 호출해야합니다. –

1

: 는 NetworkState에 액세스 할 수 Manifest.xml에 권한을 추가합니다. 2 단계

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

:

public static boolean isNetworkAvailable(Context context) { 
    ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo netInfo = cm.getActiveNetworkInfo(); 
    if (netInfo != null && netInfo.isConnected()) { 
     return true; 
    } 
    return false; 
} 

은 ... 당신이있는 경우 어떤 문제가 알려, 다음 단계를 시도 :) 좋아 보인다

+0

응용 프로그램로드로 식별하고 싶습니다. 그래서 내가 이것을 어디에 추가해야합니까? – anuruddhika

+0

이 메서드는 Utility.java에 보관할 수 있으며 Application 클래스 **의 ** onCreate()에서이 메서드를 호출 할 수 있습니다. Application 클래스에 대한 자세한 내용은 [이 링크] (http://developer.android.com/reference/android/app/Application.html)를 참조하십시오. –

관련 문제