检测android设备是否连接到互联网

2024-01-02

这是我的课程,用于检查设备是否连接到互联网。

import android.app.Activity;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.util.Log;

import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;


public class ConnectionDetector {
    private Context _context;

    public ConnectionDetector(Context context) {
        this._context = context;
    }

    public boolean isConnectingToInternet() {
        if (networkConnectivity()) {
            try {
                HttpURLConnection urlc = (HttpURLConnection) (new URL(
                        "http://www.google.com").openConnection());
                urlc.setRequestProperty("User-Agent", "Test");
                urlc.setRequestProperty("Connection", "close");
                urlc.setConnectTimeout(3000);
                urlc.setReadTimeout(4000);
                urlc.connect();
                // networkcode2 = urlc.getResponseCode();
                return (urlc.getResponseCode() == 200);
            } catch (IOException e) {
                return (false);
            }
        } else
            return false;

    }

    private boolean networkConnectivity() {
    ConnectivityManager cm = (ConnectivityManager) _context
            .getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo networkInfo = cm.getActiveNetworkInfo();
    if (networkInfo != null && networkInfo.isConnected()) {
        return true;
    }
    return false;
}

}

然后我在这里调用它,但它似乎没有返回 true 或 false。没有错误,我的应用程序没有崩溃,只是没有打印出任何内容。有人知道为什么吗?

public void CheckInternet(){

   // Boolean isInternetPresent;

    ConnectionDetector cd = new ConnectionDetector(getApplicationContext());

 //   isInternetPresent = cd.isConnectingToInternet();

    if (cd.isConnectingToInternet()) {
        // Internet Connection is Present

        Log.i(TAG, "INTERNET IS GUUD");

    } else {
        // Internet connection is not present
        // Ask user to connect to Internet
        Log.i(TAG, "INTERNET IS NOOOO GUUD");

    }
}

创建一个类:

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

然后你从 Activity 调用方法,它将返回 true 或 false:

Utility.isNetworkAvailable(AnyActivity.this);

并且不要忘记向 android 清单添加权限

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.INTERNET"></uses-permission>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检测android设备是否连接到互联网 的相关文章

随机推荐

  • 如何在 abpfeature 表中添加和使用新列并在样板中访问它?

    我正在样板文件上使用 asp net 零构建 我想扩展我的功能表 但我无法像我创建的其他普通表一样访问功能表 有人可以帮忙吗 我在另一张桌子上遇到了你的问题AuditLogs 我最终设法使用 EF Core 功能解决了这个问题 您可以找到我
  • GUID 是好盐吗?我的注册/登录过程有什么缺陷吗?

    如果我的数据库中的表如下所示 userid uniqueidentifier username varchar 20 password varbinary max 当用户提交 注册 时 我将用户 通行证发送到存储过程 存储过程创建一个新的
  • R:如何重新排序 ggplot2 线图中的图例键以匹配每个系列中的最终值?

    我正在使用 ggplot2 绘制折线图 显示多种工具的价格随时间的变化 我成功地在绘图上获得了多条线 并添加了显示最新价格变化的值 我想要做的 尚未实现 是对图例键重新排序 使涨幅最大的价格系列位于图例的顶部 其次是涨幅第二大的价格系列的键
  • 如何用Python解析SOAP XML?

    Goal 获取里面的值
  • XPath - 如何通过包含新行的@text进行选择

    在移动应用程序视图中 我看到如下文本 测试串 换行 但是在这个视图的元素树中 它看起来像可扩展的树查看器 我看到这个视图的 text 属性的值如下 用新行测试字符串 我尝试过使用以下方法 xpath text Test string nwi
  • Flutter.io Android 许可证状态未知

    gt Android toolchain develop for Android devices Android SDK 27 0 3 gt gt Android SDK a Android sdk Android NDK location
  • 使内容在 div 内水平滚动

    我有一个部门 我想在其中显示图像 然后单击在灯箱中打开它们 我将它们向左浮动并内联显示 设置overflow x滚动 但一旦行空间不够 它仍然将图像放在下面 我想让它们内联并在需要时显示水平滚动 NOTE 我无法改变里面图像的结构 它必须是
  • Git 日志表格格式

    我有一个简单的别名来显示最近的一些提交 log pretty format h an s 10 如何使结果显示在列中 如下所示 898e8789 Author1 Commit message here 803e8759 Other Auth
  • 使用 MiniTest 测试用户模型(设备身份验证)

    我正在尝试测试用户模型 为此我设计了身份验证 我面临的问题是 1 灯具中包含 密码 密码确认 字段会出现无效的 密码 密码确认 列错误 如果我从固定装置中删除这些列并添加到 user test rb require test helper
  • didFailToReceiveAdWithError 不适用于 iOS 8 模拟器

    我的 iAd AdMob 中介适用于所有 iOS 7 模拟器和设备 但是 iOS 8 didFailToReceiveAdWithError 方法不适用于任何模拟器 但适用于 iOS 8 设备 问题是我没有 iPhone 6 6 设备可供测
  • 包含动态“rgl”图的 HTML“knitr”文件在 RStudio 中无法正确显示

    在 Rstudio 中 我使用 rgl 包生成 3d 绘图 然后使用 knitr 将它们转换为用户可以交互的 html 文件 我遇到了几个我认为是独立的问题 但希望一次解决一个问题 万一它们不是 作为测试 我使用了来自网络的少量代码来生成绘
  • 如何在 VBA 访问中使用 SQL MERGE 语句?

    我一直在尝试在 Access 应用程序中使用 MERGE 语句 当我使用以下代码 为了便于阅读而简化 时 dim strSqlMerge as string strSqlMerge MERGE TargeTable AS T USING S
  • 无法从 START_OBJECT 令牌中反序列化 int[] 实例

    大家好 我想将 int 和 String 数组作为 RequestBody 发送 这是 json customUiModel 1 3 5 user user 这是端点代码 RequestMapping value save method R
  • 覆盖率测试工具 Django Rest Framework

    我正在研究 TDD 并在 Django Rest Framework 中开发 API 我研究了一个需求 但找不到一些工具来解决我的问题 我试图找出我的测试覆盖了我的应用程序的百分比 为了了解缺少封面的可能性和可能的 建议数量 我找到了cov
  • 如何将 EF Code-First 转换为 Database First?

    我想首先将我的代码优先项目转换为数据库 是否有一种自动化的方法 或者我应该删除实体和上下文代码并从创建的数据库创建模型 Entity Framework Power Tools 似乎支持一项名为 逆向工程代码优先 的功能 你可以下载它her
  • 使用 UTF8 编码将 Excel 转换为 CSV [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有一个 Excel 文件 其中包含一些西班牙语字符 波形符等 我需要将其转换为 CSV 文件以用作导入文件 但是 当我 另存为 CSV
  • 如何解释C中命令行参数中的特殊字符?

    第一个问题 假设我们编写一个简单的程序 它接受命令行参数并打印到文件 如果用户输入 writetofile 你好 0 n w orl t y bash 回复 0 事件没有 成立 如果用户不知道使用引号 或转义字符 之类的东西 我该如何处理这
  • mcrypt 已被弃用,有什么替代方案?

    mcrypt 扩展名是已弃用 http php net manual en migration71 deprecated php migration71 deprecated ext mcrypt根据发布的评论 将在 PHP 7 2 中删除
  • 如何在SQL中按任意条件排序

    我有下表 CREATE TABLE Bable id int identity primary key name varchar 20 about varchar 30 INSERT INTO Bable name about VALUES
  • 检测android设备是否连接到互联网

    这是我的课程 用于检查设备是否连接到互联网 import android app Activity import android content Context import android net ConnectivityManager