考虑到new broadcast limitations目标Android O的应用程序无法再在其清单中注册隐式广播的广播接收器,我一直想知道如果我对检测wifi状态更改感兴趣,我有哪些选项?
list of exceptions在这里没有帮助,以前为隐式广播注册的应用程序的建议可以通过使用JobScheduler作业获得类似的功能。
虽然JobInfo.Builder.setRequiredNetworkType和NetworkRequest.Builder.addTransportType非常接近,但他们都认为应用程序对连接的网络感兴趣,对于Wi-Fi Direct(P2P)并不总是可取的 - 想象一下场景当用户启用Wi-Fi时,触发接收器检查附近的设备并提供一些操作。
直到Android O这很容易,人们可以在清单中听WIFI_STATE_CHANGED_ACTION
或WIFI_P2P_STATE_CHANGED_ACTION
,但新规则使这个变得不可能。我想这个想法是,如果用户对附近的设备感兴趣,应该使用应用程序。我能想到的唯一解决方法就是让JobScheduler
每分钟左右触发一个工作来手动检查wifi状态,但这完全违背了这些规则试图强制实施的省电的想法。