android - CONNECTIVITY_CHANGE 广播 Android O

标签 android android-wifi android-8.0-oreo

我们有一个基于 wifi 的应用程序,拥有数百万客户群。该应用程序的核心逻辑是在连接时将用户连接到具有自动登录功能的公共(public)开放热点。应用完全依赖于这些广播。

<intent-filter>
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
                <action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
                <action android:name="android.net.wifi.STATE_CHANGE" />
</intent-filter>

广播后,应用程序将检查连接的 wifi 热点并尝试自动登录。

在 Android O 中,应用程序不会收到上述任何广播。使用广播接收器解决方法查看后台服务,似乎 android 有一段时间停止了该服务。

非常感谢任何建议。

最佳答案

使用 JobScheduler(JobIntentServiceFirebase Job Dispatcher 以实现向后兼容性)。引用latest video from Android Developers .

使用 JobInfo.Builder.setRequiredNetworkType() 方法,您可以安排作业在满足特定网络条件时运行。

引自this thread :

The network type can be one of three values:

  • JobInfo.NETWORK_TYPE_NONE: No network connectivity required.

  • JobInfo.NETWORK_TYPE_UNMETERED: An unmetered WiFi or Ethernet connection.

  • JobInfo.NETWORK_TYPE_ANY: Any network connection (WiFi or cellular).

JobInfo.NETWORK_TYPE_UNMETERED 将满足您的需求。

关于android - CONNECTIVITY_CHANGE 广播 Android O,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45819298/

相关文章:

android - 如何在 Android 中以编程方式禁用特定 SSID 的 WiFi 自动重新连接?

android - 使用 Android O 画中画模式的任务列表和返回堆栈

android - 自 Oreo/API 26 起允许用户设置通知灯颜色

android - 如何清除 Webview 内容以更改 Android Oreo 中的视频

android - 键盘可见时滚动内容

java - 使用 AsyncTask 在后台创建一个 GLSurfaceView

java - 通过 Android Studio 在 Android 设备中设置静态 IP 信息

当用户离开家时android禁用wifi

android - Google Play 一次性产品购买 - 实时开发者通知

android - 如何删除可检查菜单项的末尾填充?