问题标签 [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 回答
591 浏览

android - WiFi网络连接在Android Q上不断断开

我使用WiFi 网络请求 API连接到 android Q 上的网络。连接可用但丢失。这是我的代码

我已经尝试过这个解决方案,我也遇到过这样的帖子

这些是 NetworkCallBack 抛出的日志:

我会很感激任何想法?

0 投票
0 回答
88 浏览

android - 为什么 API Level 29 WiFi 连接需要密码?

我正在尝试连接到通过其托管的接入点进行通信的 IoT 设备(同一个房间中可以有多个 IoT 设备)。在 API 早于 29 时,我使用WifiManager方法连接到设备。现在这些已被弃用,建议的方法是使用ConnectivityManager及其requestNetwork方法。

在这里,我提供了 WifiNetworkSpecifier 实例,顾名思义,它指定了网络名称模式(在我的例子中是前缀)和密码。这会导致系统对话框扫描匹配的网络以及用户选择首选网络的位置。

我的问题是为什么 API 假定所有匹配的 WiFi 接入点上的密码都是相同的,并要求预先指定它们(在扫描对话框之前)。在没有密码的情况下传递 WiFiNetworkSpecifier 会导致对话框扫描按名称匹配的开放网络,这不是我的用例。

用户在该扫描对话框中选择项目后,有没有办法让 Android 要求输入密码?

0 投票
2 回答
605 浏览

android - 互联网关闭时无法获得回调,然后应用程序在 NetworkCallback 内启动

根据官方文档,由于 getActiveNetworkInfo 现在在 Android 中已被弃用,我正在使用以下实现来获取有关 Internet 连接的回调。

连接在线的时候注册这个回调很好用,但是断网的时候注册回调就不行了。为了测试这样的场景,我关闭了我的应用程序。然后关闭互联网连接,然后打开应用程序。

我们有什么办法知道应用程序正在打开吗?如果有,请帮忙分享一下。谢谢。

0 投票
1 回答
228 浏览

android - android 10 的 Xamarin/特殊 wifi 权限?

我有一个连接到 wifi 接入点的应用程序,然后连接到端口 50,000 上的本地服务器。在 API < 29 上运行良好。但在 29 中,我必须使用 ConnectivityManager 而不是 WifiManager。得到那个工作没问题。问题是之后连接到服务器。该设备的行为就像端口 50,000 已关闭,但我这里还有其他设备可以正常连接。但是,如果我告诉设备连接到端口 80 上的同一台服务器(这也是开放的),繁荣,即时连接。所以我连接到接入点并且服务器可以访问,我只是无法让它连接到 50,000。我是否需要一些特殊权限才能访问端口> 1024?我尝试将 Internet 权限添加到我的清单中,但如果我添加了 NetCapability 功能。互联网然后回调被立即调用 OnUnavailable。甚至不尝试。我也有功能 NotRestricted 和 Trusted 。有人知道我在这里缺少什么吗?

0 投票
0 回答
274 浏览

android - 通过 ConnectivityManager 连接的 Android 10 (API29) 缓存密码并失败

我已经通过它提供的 WiFi 接入点实现了与物联网设备的连接。我正在使用 ConnectivityManager 的 requestNetwork 方法,并为 WifiNetworkSpeficier 提供 SSID 模式和密码。

问题是看起来 API 29 正在对密码进行某种缓存。第一次尝试连接到网络(重启后)没有问题。每个后续请求都会导致 API 尝试使用先前输入的密码(忽略传递给它的密码)进行连接,即使输入错误也是如此。这种行为会一直持续到下一次手机重启。

我已经在 Pixel 3XL、Pixel 2 和三星 Note 10+ 上重现了这一点,所以我担心我是否以某种方式滥用了 API。当然,所有 3 部手机都在 Android 10 上。

0 投票
1 回答
303 浏览

android - 如何通过 Android 中的 Network 对象建立 SMB 连接?

我正在尝试建立 SMB ( Samba ) 连接以获取文件列表并使用 smbj 库的SMBClient下载它们

为此,我必须连接到特定的网络并使用该类,但在 Android QI 中必须更改连接到无线的方式,如下所示:

这会在应用程序中建立连接,但通过移动数据建立主连接,我无法建立连接,因为服务器无法访问。我必须找到一种方法来通过函数network中的对象建立连接onAvailable

Did you know how or is there an alternative way?

解决方案

我在ConnectivityManager类中找到了一个方法,该方法是bindProcessToNetwork

connectivityManager.bindProcessToNetwork(network)

0 投票
2 回答
467 浏览

android - WorkManager 是适合我的解决方案吗?

我的应用程序中有以下要求。1.我选择了一些文件并点击上传按钮。点击上传按钮后,应用程序退出。(我正在排队请求并完成活动)。2. 应用退出后,这些文件需要在后台同步到服务器。3.同样经过一定的时间间隔(我设置了16分钟的间隔),在后台,我需要检查是否有未同步的数据,在后台同步。4. 如果用户离线,一旦建立网络连接,未同步的数据应该在后台同步。

我已经使用 WorkManager 的定期工作请求来实现这一点。但是在我的 Asus Zenfone3 上对其进行测试时,我观察到: 1. 如果我的设备进入睡眠模式,doWork()之后不会执行

  1. 如果我关闭移动数据然后再打开,doWork() 不会立即执行。我设置了 1 个约束:.setRequiredNetworkType(NetworkType.CONNECTED)。它仅在其间隔完成后才执行。我需要在网络上立即同步。

  2. 有时,单击上传按钮不会立即调用 doWork()。

WorkManager (2.3.2) 是我遵循的正确方法吗?实现上述要求的任何指导方针。将不胜感激。

0 投票
4 回答
2554 浏览

android - 建立连接后,通过 WifiNetworkSpecifier 的 Android Q Wifi 连接立即失去连接

我目前正在尝试连接到 wifi 网络。我使用了下面的代码。

问题:上面的代码适用于 Pixel 手机和诺基亚,但在 Oneplus 设备上,我得到 toast连接成功toast,并且在此 wifi 断开连接后立即。wifi 符号在状态栏中非常短暂地可见。在下一刻,Wifi-Symbol 消失了,系统对话框再次可见,连接到 wifi。

已授予以下权限,并授予位置权限,并且在设备中也已启用。

当我调试回调时,它正在通过此顺序中的方法:

  1. onAvailable()
  2. onCapabilitiesChanged()
  3. onBlockedStatusChanged(阻止:假)
  4. onCapabilitiesChanged()
  5. onLost()

我已经提到了这些 Android Q,以编程方式连接到不同的WiFi AP以进行互联网
WiFi网络连接在Android 10(Q)Android Q中不断断开Android Q Wifi网络请求Api连接问题 ,WifiNetworkSpecifier在连接建立后立即失去Wifi

我无法找到解决方案。

网络请求中是否缺少任何导致断开连接的内容。或任何其他赞赏的解决方案。

谢谢你。

0 投票
1 回答
651 浏览

android - 使用 bindProcessToNetwork 绑定到蜂窝网络不起作用

我正在尝试按需绑定到蜂窝网络(wifi 仍在运行)。我有以下代码:

当我尝试在 wifi 启动时绑定到蜂窝网络时,boundNetworkForProcess不是蜂窝网络,而是 wifi 网络。

如果我禁用 wifi 网络,这将每次都有效。

我在以太网和wifi之间立即绑定也没有问题。即使网络可用,移动数据似乎也无法按需绑定。无论其他网络的状态如何,如何立即绑定到蜂窝网络?

完整的项目在这里:

https://github.com/dazza5000/network-switch-poc/blob/master/app/src/main/java/com/fivestars/networkswitchpoc/MainActivity.kt

0 投票
1 回答
609 浏览

android - 从 Android 22 开始,如何同步检索某些传输类型的网络状态?

我更改了问题标题,因为Kiskae 为更广泛的问题提供了解决方案,这使得关于包装回调 API 的问题对于特定问题来说是不必要的。以前的问题标题是:

如何使用协程将异步回调包装到挂起函数中?


我正在尝试将ConnectivityManager.NetworkCallbackAndroid 框架的 API(>= SDK 级别 21)包装到挂起函数中,以促进同步 API:

当我调用时,isNetworkAvailable(NetworkCapabilities.TRANSPORT_WIFI)输出如下:

[DefaultDispatcher-worker-1] registerNetworkCallback 之前
[DefaultDispatcher-worker-1] registerNetworkCallback 之后

但是,onAvailableandonLost永远不会被调用。

参考

有关的