簡體   English   中英

如何檢查我的測試android設備是否已連接到互聯網?

[英]How to check My test android device is connected to internet or not?

protected boolean isOnline()            
{
      ConnectivityManager cm = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
      NetworkInfo info = cm.getActiveNetworkInfo();
      if (info != null && info.isConnectedOrConnecting()) {
        return true;
      }else
      {
        return  false;
      }
}
public void requestData()
{
    if (isOnline())
    {
        Toast.makeText(getApplicationContext(), "connected", Toast.LENGTH_LONG).show();
    }
    else
    {
        Toast.makeText(getApplicationContext(), "Niot Connected", Toast.LENGTH_LONG).show();
    }
}

我已經編寫了這段代碼,但是出現了類似“不幸的是您的程序已停止”之類的錯誤。.請幫助我..提前謝謝

您需要將此添加到您的androidmanifest.xml

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

請檢查此鏈接http://www.androidhive.info/2012/07/android-detect-internet-connection-status/

Android的演示檢測互聯網連接狀態

要訪問互聯網,我們需要INTERNET許可

要檢測網絡狀態,我們需要ACCESS_NETWORK_STATE權限

調用此方法

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

並宣布允許

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

這是適合我的代碼。 在您的utils中定義此類。

    public class InternetConnection {

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

然后,在要檢查連接狀態的活動中,使用,

if(!(InternetConnection.isNetworkAvailable(this))){
            internetActive = false;
            Toast.makeText(this, "Please try again with active Internet connection", Toast.LENGTH_LONG).show();
        }
        else {
// your code if device is connected to internet
}

確保你有

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

您清單中的權限。

您將使用以下兩種方法檢查是否已連接WIFI和移動數據:

public boolean checkWIFIInternetConn() {
        //Create object for ConnectivityManager class which returns network related info
        ConnectivityManager connectivity = (ConnectivityManager) _context.getSystemService(Context.CONNECTIVITY_SERVICE);
        //If connectivity object is not null
        if (connectivity != null) {
            //Get network info - WIFI internet access
            NetworkInfo info = connectivity.getNetworkInfo(ConnectivityManager.TYPE_WIFI);


            if (info != null) {
                //Look for whether device is currently connected to WIFI network
                if (info.isConnected()) {
                    return true;
                }
            }
        }
        return false;
    }

     public boolean checkMobileInternetConn() {
            //Create object for ConnectivityManager class which returns network related info
            ConnectivityManager connectivity = (ConnectivityManager) _context
                    .getSystemService(Context.CONNECTIVITY_SERVICE);
            //If connectivity object is not null
            if (connectivity != null) {
                //Get network info - Mobile internet access
                NetworkInfo info = connectivity.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

                if (info != null) {
                    //Look for whether device is currently connected to Mobile internet
                    if (info.isConnected()) {
                        return true;
                    }
                }
            }
            return false;
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM