我们有一个基于 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
(JobIntentService
或 Firebase 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/