首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android,如何在连接到wifi网络时覆盖互联网连接检查?

Android,如何在连接到wifi网络时覆盖互联网连接检查?
EN

Stack Overflow用户
提问于 2016-07-25 02:12:41
回答 3查看 3.9K关注 0票数 11

我注意到在棉花糖(例如Nexus6P)和一些最近更新的棒棒糖手机(例如Galaxy S5)上,当我连接到一个没有互联网的wifi网络时,网络将不会完全连接,直到用户接受网络没有互联网接入的提示。

有没有办法通过编程绕过这一检查,并允许wifi连接继续进行,而不考虑互联网接入?

EN

回答 3

Stack Overflow用户

发布于 2016-09-07 15:59:11

没有尝试这些,但您可以尝试将www.google.com和8.8.8.8重定向到127.0.0.1 (您可以使用iptables或修改/system/hosts)。您也可以尝试挖掘AOSP源代码(这些是我在AOSP中找到的唯一isReachable()检查)。

如果您决定查找AOSP,您可以启动here

附注: iptables和/system/hosts操作需要root用户。

票数 1
EN

Stack Overflow用户

发布于 2016-09-07 17:12:53

你可以试试这个

要验证网络可用性,请执行以下操作:

代码语言:javascript
运行
复制
private Boolean isNetworkAvailable() {
    ConnectivityManager connectivityManager 
          = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
    return activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting();
}

要验证互联网访问(连接的wifi是否处于活动状态),请执行以下操作:

代码语言:javascript
运行
复制
public Boolean isOnline() {
    try {
        Process p1 = java.lang.Runtime.getRuntime().exec("ping -c 1 www.google.com");
        int returnVal = p1.waitFor();
        boolean reachable = (returnVal==0);
        return reachable;
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return false;
}
票数 1
EN

Stack Overflow用户

发布于 2016-09-02 14:48:28

检查这些链接..

check Internet connection

代码语言:javascript
运行
复制
public final boolean isInternetOn()
{
  ConnectivityManager connec = (ConnectivityManager)
    getSystemService(Context.CONNECTIVITY_SERVICE);

  // ARE WE CONNECTED TO THE NET
  if ( connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED ||
       connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTED )
  {
    // MESSAGE TO SCREEN FOR TESTING (IF REQ)
    //Toast.makeText(this, connectionType + ” connected”, Toast.LENGTH_SHORT).show();
    return true;
  }
  else if ( connec.getNetworkInfo(0).getState() == NetworkInfo.State.DISCONNECTED
    ||  connec.getNetworkInfo(1).getState() == NetworkInfo.State.DISCONNECTED  )
  {
    return false;
  }

  return false;
  }

check Internet connection with url if available

代码语言:javascript
运行
复制
public static boolean hasActiveInternetConnection(Context context) {
    if (isNetworkAvailable(context)) {
        try {
            HttpURLConnection urlc = (HttpURLConnection) (new URL("http://www.google.com").openConnection());
            urlc.setRequestProperty("User-Agent", "Test");
            urlc.setRequestProperty("Connection", "close");
            urlc.setConnectTimeout(1500); 
            urlc.connect();
            return (urlc.getResponseCode() == 200);
        } catch (IOException e) {
            Log.e(LOG_TAG, "Error checking internet connection", e);
        }
    } else {
        Log.d(LOG_TAG, "No network available!");
    }
    return false;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38555204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档