在整个应用程序中检查 android studio 中的互联网连接。 (我们是不是需要在每个 java 活动中编写连接管理器函数?) [重复]

Posted

技术标签:

【中文标题】在整个应用程序中检查 android studio 中的互联网连接。 (我们是不是需要在每个 java 活动中编写连接管理器函数?) [重复]【英文标题】:Check internet connection in android studio throughout the application. (Do we need to write connectivity manager function in each java activity?) [duplicate]在整个应用程序中检查 android studio 中的互联网连接。 (我们是否需要在每个 java 活动中编写连接管理器函数?) [重复] 【发布时间】:2021-03-31 08:55:53 【问题描述】:

我制作了一个 android studio 项目,但我需要在每次用户交互期间检查互联网连接。我知道连接管理器和其他几个功能的用法,但是这需要在每个活动中实现。任何人都可以提供任何更好的解决方案或更好的想法。以便应用程序在互联网关闭时显示一个对话框。

【问题讨论】:

【参考方案1】:

你可以用这个方法

 boolean connected = false;
ConnectivityManager connectivityManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
    if(connectivityManager.getActiveNetworkInfo().getState() == NetworkInfo.State.CONNECTED)
        //we are connected to a network
        connected = true;
    
    else
        connected = false;

警告:如果您连接到不包括互联网访问或需要基于浏览器的身份验证的 WiFi 网络,则仍为已连接。

您需要在清单中获得此权限:

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

【讨论】:

NetworkInfo 已被 API 29 弃用 更新到 getActiveNetworkInfo getActiveNetworkInfo 也已弃用。您应该将回调与 registerDefaultNetworkCallback() 一起使用,但我不知道它最初是否有效。我的意思是在打开应用程序时检查是否有连接。

以上是关于在整个应用程序中检查 android studio 中的互联网连接。 (我们是不是需要在每个 java 活动中编写连接管理器函数?) [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio的软件测试工具

Android Studio——常用组件练习之注册信息

在 Android Studio 上使用 Java 检查实时数据库上的重复数据

如何检查 id String 是不是为空,然后在 android studio 中定义一个默认值是不是为空

如何在android studio或vscode中搜索整个Flutter源码

在 Android Studio 中重新格式化整个项目文件