问题标签 [android-connectivitymanager]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
603 浏览

android - Android Q 总是重复使用第一个输入的凭据来连接到 WiFi 网络

我正在尝试使用 Android Q 上的 WifiNetworkSpecifier 连接到 WiFi。我遇到的问题是 Android 始终使用最后一个有效凭据连接到 AP,即使在我手动向 WifiNetworkSpecifier 提供新的、更新的凭据之后也是如此。

这是流程:

  1. 成功连接AP。
  2. 更改 WiFi 网络的密码。
  3. 运行应用程序,尝试使用更新的凭据(提供新的有效密码)再次连接,但应用程序无法连接到 WiFi(身份验证失败)。

如果我颠倒逻辑,也会发生同样的事情:

  1. 成功连接到WiFi。
  2. 运行应用程序,为其提供更新的凭据(新的、错误的密码),但应用程序设法连接到 WiFi。

关键是,一旦它使用有效凭据连接到 SSID,无论我放入 WifiNetworkSpecifier 似乎都没有任何区别,它只是一遍又一遍地使用最后一个有效凭据。

这发生在 Google Pixel 2 和华为 P30 Lite 上。但是,在三星 Galaxy S9 上一切正常(如果我更新 WiFi 网络密码并为应用程序提供新的有效密码,应用程序将连接到 WiFi 网络;如果我提供它,它将无法连接到 WiFi假密码,都假设我们之前成功连接到 WiFi)。

重新启动设备后,Pixel 和华为的问题得到“解决”,但是当我再次连接到 WiFi(输入有效凭据)时,我们又回到了同样的问题。

我不确定我是否在这里遗漏了一些琐碎的事情,但我们将不胜感激任何帮助!谢谢!

编辑:事实证明,您不必输入有效凭据即可触发此循环。例如,如果您第一次尝试使用错误密码连接 AP,并且尝试使用正确密码连接后,系统会使用此错误密码(第一次输入的密码)进行连接。同样,这发生在 Pixel 2 和华为 P30 Lite 上,但在 Galaxy S9 和 S9+ 上运行良好。重新启动手机仍会清除此“状态”。

这是代码:

0 投票
1 回答
213 浏览

android - 通过 observables 监控互联网连接状态只运行一次

我想监控应用程序范围的互联网连接,为此我使用 rxjava,我创建了一个 util 类并获得了连接状态的静态方法,如下所示:

在每个活动中,我都得到了这个参考并像这样订阅它:

问题是当活动打开时吐司显示正确的状态但是当我关闭/打开(更改互联网连接状态)时没有任何反应没有吐司出现

谢谢!

0 投票
0 回答
42 浏览

android - 如何以编程方式阻止和允许其他应用程序在 android 中访问互联网?

我的想法是设计一个 android 应用程序,允许或阻止所选应用程序的互联网流量,根据我的意愿在非 root 手机中。

我知道这是可能的,但请任何人帮助我实现这一目标。

有一些应用程序,如 mobiwol 等,有助于允许或阻止应用程序上网。

我搜索了互联网,但没有任何工作。

提前致谢

0 投票
1 回答
36 浏览

android - 当用户连接到 WiFi 网络(可以访问互联网)时,是否有监听器?

我正在努力了解用户何时连接到具有 Internet 访问权限的 WiFi 网络。

到目前为止,我已经尝试了两种方法来实现这一目标:

  • 使用BroadcastReceiver(动作:)android.net.conn.CONNECTIVITY_CHANGE,和;
  • 注册一个NetworkCallbackConnectivityManager

由于它们的回调被调用得太快,它们大部分时间都失败了,因为它们是在网络无法访问 Internet 时调用的。

有没有办法实现我想要的(对于 API >= 16)?

0 投票
0 回答
50 浏览

android - 我的 Andoid 应用程序无法在手机上运行并显示消息“bookhub 已停止”?我试图将我的应用程序连接到互联网

我试图将我的应用程序连接到互联网。我运行以下代码这是我在“ConnectionManager.kt”类中输入的一组代码

错误可能在这里也可能不在。我不知道。我在另一个名为“DashboardFragment.kt”的文件中输入了另一组代码,在我看来,这将是一个错误,但我无法解决它。“DashboardFragment.kt”文件中的代码如下:

这是两个文件。请告诉我错误在哪里。这是代码在手机上显示的错误enter image description here

我正在从 logcat 添加一张图片,以根据我们的一位堆栈溢出朋友的要求查找错误..... 在此处输入图片描述

0 投票
1 回答
1684 浏览

android - 如何对 Android ConnectivityManager 进行单元测试

我正在构建一个应用程序,我们可以通过它使用ConnectivityManager类检测互联网连接的可用性,但我不确定如何使用Mockito. 请帮我编写以下代码的单元测试用例:

0 投票
1 回答
440 浏览

android - Google 在使用 NET_CAPABILITY_VALIDATED 时如何验证网络连接?

出于好奇,Google 使用什么方法来验证有效的互联网连接?他们是否达到了一个普遍的终点?https://developer.android.com/reference/android/net/NetworkCapabilities#NET_CAPABILITY_VALIDATED

任何指向某些 AOSP 的链接也将非常有帮助。

0 投票
1 回答
647 浏览

android - 如何在 API 级别 21 以下的设备中检查 NO INTERNET

这是我的 MainActivity,我已经在 onstart 中注册了我的网络调用。在此代码中,无论设备是否打开互联网 wifi,都不会调用onUnavailable() 。我想在单击一个按钮后检查互联网,如果连接了互联网,它将继续进行下一个活动,否则没有

此命令还ConnectivityManager.requestNetwork(networkRequest, networkCallback, 3000)需要 Api 级别 21 +,超时时间为 3 秒。

0 投票
0 回答
388 浏览

android - 影响应用性能的多个 NetworkCallback 事件 (onAvailable)

当设备失去网络连接时,我需要显示警报屏幕。当连接恢复时,我会隐藏此警报。我正在使用 ConnectivityManager.NetworkCallback() 来确定连接状态。该应用程序正在 API 22 设备上运行。

它在我的 Activity 的 onCreate() 方法中注册

这是广播接收器

通常,onAvailable()在连接 Wi-Fi 后被调用 1-2 次。但是对于应用程序正在运行的某些地方,onAvailable()每分钟都会有多个回调到达。

这会影响应用程序性能,使 UI 缓慢且无响应。

这可能是什么原因?在这种情况下如何提高性能?

0 投票
2 回答
284 浏览

java - 当 Android 的数据保护程序关闭时获取“BLOCKED”网络状态

我正在开发一个在运行 Android 7.0 的特定平板电脑上使用的应用程序。我正在使用 aService发送周期性DatagramPackets。我只能使用移动网络ConnectivityManager我使用和检查连接NetworkInfo状态DetailedState。我使用以下代码获取网络状态:

  • 如果平板电脑已插入并且屏幕打开或关闭,我将获得CONNECTED状态。
  • 如果桌面被拔掉并且屏幕打开,我会得到 CONNECTED 状态。
  • 如果桌面被拔掉并且屏幕关闭,我会进入BLOCKED状态。

在我的平板电脑中,流量节省程序已关闭。以防万一,我已经运行测试以验证屏幕关闭时没有限制,即使网络被阻塞,cm.getRestrictBackgroundStatus()总是返回 1,即RESTRICT_BACKGROUND_STATUS_DISABLED 。

那么,为什么网络被封锁了呢?我的应用程序需要特殊权限吗?我的平板电脑需要特殊配置吗?