簡體   English   中英

是否可以檢測 Android 設備是否連接到路由器?

[英]Is it possible to detect whether an Android device is connected to a router?

以下代碼可用於檢查以太網連接:

ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
if(cm.getNetworkInfo(ConnectivityManager.TYPE_ETHERNET).getState() == NetworkInfo.State.CONNECTED)
{
...
}

如果是連通的,至少有兩種可能:

  1. 它連接到路由器。
  2. 它連接到另一個設備(即點對點連接)

我如何區分一個和另一個?

代碼如下:

public static int getNetWorkType(Context context) {  

    ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);  
    NetworkInfo networkInfo = manager.getActiveNetworkInfo();  

    if (networkInfo != null && networkInfo.isConnected()) {  
        String type = networkInfo.getTypeName();  

        if (type.equalsIgnoreCase("WIFI")) {  
            mNetWorkType = NETWORKTYPE_WIFI;  
        } else if (type.equalsIgnoreCase("MOBILE")) {  
            String proxyHost = android.net.Proxy.getDefaultHost();  

            mNetWorkType = TextUtils.isEmpty(proxyHost)  
                    ? (isFastMobileNetwork(context) ? NETWORKTYPE_3G : NETWORKTYPE_2G)  
                    : NETWORKTYPE_WAP;  
        }  
    } else {  
        mNetWorkType = NETWORKTYPE_INVALID;  
    }  

    return mNetWorkType;  
}   

注意:熱點也是wifi

暫無
暫無

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

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